Tag Archive for 'trucchi'

Page 2 of 3

Nascondere un file in una immagine

Vediamo come si può “nascondere un file all’interno di un’immagine, la cosa potrebbe tornare utile ad esempio per inviare file non permessi dal server SMTP.

In questo tutorial viene spiegato come eseguire l’operazione con Winrar, che però non è un software gratuito quindi ho deciso di rifare la procedura usando 7-Zip:

Logo di 7-Zip
Una volta scaricato ed installato 7-zip, isogna innanzitutto comprimere il file da nascondere in un archivio e quindi unirlo all’immagine prescelta. La procedura è molto più rapida se eseguita da prompt dei comandi, quindi premere Windows-R e digitare cmd e dare invio.

Dal prompt dei comandi per comprimere il file con 7-zip digitare:
7z a -t7z file.7z file_da_comprimere.exe
(naturalmente bisogna assicurarsi di essere nella cartella in cui si trova il file 7z.exe o eventualmente settare il giusto PATH)
Per unire il file compresso all’immagine, dare il comando:
copy /b immagine.png + file.7z output.png
(è importante che l’immagine venga messa prima del file compresso)

Prompt dei comandi

Ora se aprite normalmente il file output.png esso verrà aperto con un visualizzatore di immagini, se invece decidete di aprirlo con 7-Zip (o altro software per la gestione degli archivi compressi) esso mostrerà il file che abbiamo aggiunto. Ad esempio:
7zFM output.png

Bene, per fare prima potete usare un piccolo file BAT che io ho chiamato mfii (merge file in image) e che va usato nel seguente modo:
mfii file_da unire immagine
tenendo ben presente le seguenti cose:

  • se il percorso del file contiene spazi bisogna quotare con le virgolette;
  • l’immagine va sempre inserita come secondo parametro del comando;
  • se avete installato 7-zip in una cartella diversa da “C:\Programmi\7-zip” dovete modificare il file BAT inserendo il giusto percorso.

Il codice è il seguente:

@echo off
::  Se si è  installato 7-zip in una cartella diversa modificare il percorso con il  giusto PATH
PATH=%PATH%;C:\Programmi\7-zip;;
:: Imposta i tipi di file permessi per il file immagine
SET FILETYPE=.jpg .png .gif
:: Se non sono stati inseriti i parametri necessari lo script restituisce un errore
IF (%1)==() GOTO ERRORE3
IF (%2)==() GOTO ERRORE3
:: Verifica l'esistenza dei due file in input, se non esistono ritorna un ERRORE
IF NOT EXIST %1 GOTO  ERRORE1
IF NOT EXIST %2 GOTO ERRORE2
:: Estrae il nome del file di output che deriverà il suo nome dal file da aggiungere all'immagine
for %%F in (%1) do   SET IMGNAME=%%~nF
:: deriva l'estensione del file di output che coincide con l'estensione dell'immagine utilizzata
for %%F in (%2) do   SET IMGEXT=%%~xF
:: Verifica che il secondo file sia un'immagine altrimenti interrompe lo script
SET ISIMAGE=0
for %%F in (%FILETYPE%) do  IF (%%F)==(%IMGEXT%) SET ISIMAGE=1
IF (%ISIMAGE%)==(0) GOTO ERRORE4
:: Crea il file  archivio da aggiungere poi all'immagine, se il percorso di 7z.exe non è corretto verrà restituito un errore
7z  a -t7z temp.7z %1
:: unisce il file compresso all'immagine e dà il file di output
copy /b  %2 + temp.7z %IMGNAME%%IMGEXT%
:: Cancello il file temporaneo temp.7z
del temp.7z
:: Termina lo script non avendo incontrato nessun errore
echo Il file %IMGNAME%%IMGEXT%   è stato creato con successo
GOTO END
:ERRORE1
:: Se il primo file non esiste viene restituito un errore
echo il file %1  non esiste, accertarsi di aver digitato  correttamente il nome del file
GOTO END

:ERRORE2
:: Se il secondo file non esiste viene restituito un errore
echo il file %2 non esiste
GOTO END
:ERRORE3
echo  devi  inserire almeno due parametri
GOTO END

:ERRORE4
echo il secondo file in input deve essere un'immagine
GOTO END

:END

]]>

UPDATE: seguendo i suggerimenti di chi ha commentato ho creato uno script VBS che permette di “nascondere” un file in un’immagine dal menu contestuale di Explorer, questo è il link al nuovo post.

Traduttore in linea

AGGIORNAMENTO: purtroppo SPB fa delle conversioni assurde e i bookmarklet non funzionavano, ora ho fatto l'escape manuale dei caratteri e spero il problema si sistemi :-( .

Visto che un solo %s da usare come parametro nelle keyword di Firefox non bastava, quelli di Lifehacker si sono inventati il modo di utilizzare parametri multipli :-D . Qui trovate il post su Lifehacker con alcuni esempi di utilizzo delle keyword multiparametriche. Io mi ero posto una domanda simile ma non conoscendo così bene Javascript non ero riuscito nel mio scopo. Ora che ho visto come si fa però, ho modificato il bookmarklet per le traduzioni utilizzando questa nuova funzione segnalata su Lifehacker. Se leggete il post originale su Lifehacker troverete il bookmarklet prototipo che può essere utilizzato, ad esempio, per cercare del testo nei messaggi di particolari utenti nei Forum o affinare le ricerche con un parametro in più a vostra scelta.

Se qualcuno conosce bene Javascript si accorgerà sicuramente che il bookmarklet è migliorabile diciamo che lo scopo è quello che funzioni, ma, non è buon codice. Probabilmente ad un vero programmatore gli si rizzeranno i capelli :-P . Se qualcuno vuole migliorarlo è benvenuto :-) .

Il bookmarklet necessita che vengano passati sempre almeno due parametri che rappresentano, rispettivamente, la sigla della lingua di partenza e di quella di arrivo e va usato da barra degli indirizzi richiamandolo tramite keyword, motivo per cui funziona solamente con Firefox. Con qualche if in più si potrebbe farlo andare anche con altri browser ma perderebbe di utilità e diventerebbe pressoché uguale a quelli proposti nei siti di traduzione. I bookmarklet sono due: il primo usa come servizio di traduzione Google Translate, mentre il secondo utilizza BabelFish.

Supponiamo di associare al bookmarklet che usa Google Translate la keyword: trans (tranquilli non è l'amico di Lapo ma solo l'abbreviazione di translate :-) ) e trans2 a quello di BabelFish, ecco come vengono richiamati:

trans sigla_lingua_pagina sigla_lingua_in_cui_tradurre (opzionalmente altro testo)
trans2 sigla_lingua_pagina sigla_lingua_in_cui_tradurre (opzionalmente altro testo)

I primi due parametri devono sempre essere passati mentre il terzo è opzionale. Le sigle da passare sono quelle canoniche: it (italiano), en (inglese), fr (francese), de (tedesco) e così via.

Purtroppo, non si possono usare lettere accentate come testo opzionale e non ne so la ragione, anzi se qualcuno ne conosce il motivo, mi farebbe un grosso piacere a spiegarmelo commentando o contattandomi via email. Ecco come funziona:

  • se viene selezionato del testo nella pagina verrà tradotto il testo selezionato;
  • se non viene selezionato del testo e vengono passati solo due parametri viene tradotta la pagina;
  • se viene passato del testo senza selezionare nulla viene tradotto il testo digitato come “terzo parametro.

Ma bando alle ciance e facciamo qualche esempio pratico :-) .

Esempi

trans it en
senza selezionare alcun testo traduce la pagina dall'italiano all'inglese
transen it
selezionando del testo, tradurrà il testo dall'inglese all'italiano,
trans it en oggi il sole splende
traduce dall'italiano all'inglese "oggi il sole splende".

Naturalmente la coppia di lingue deve essere supportata dal servizio di traduzione utilizzato, purtroppo per quanto riguarda Google Translate l'italiano può essere usato solo in coppia con l'inglese dunque non si possono usare combinazioni del genere (o meglio si possono usare ma non producono alcun risultato):
transit fr
Naturalmente se in futuro Google migliora il servizio offerto può darsi che tali comandi acquistino un senso compiuto. Se vi accontentate dell'inglese invece potete tradurre da/in quasi tutte le lingue del mondo, per esempio:

transen es
traduce dall'inglese allo spagnolo, oppure:
trans de en
traduce dal tedesco all'inglese e così via.

Se passate la stessa lingua, come ad esempio:
trans it it

potete bypassare l'eventuale proxy che vi blocca la pagina come spiegato da O'Reilly.

Con BabelFish si può inoltre tradurre dall'italiano al francese e viceversa, sono validi dunque i comandi:
trans2fr it
trans2it fr

bene ora che sapete come si usano, se volete potete aggiungere i due bookmarklet :-D .

Google Translate

javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=encodeURIComponent(s.substring(5,s.length));url='http://translate.google.com/translate_t?langpair=%s|%s&text='+testo;} else{if (quote=='') url='http://www.google.com/translate?langpair=%s|%s&u='+encodeURIComponent(location.href); else url='http://translate.google.com/translate_t?text='+quote+'&langpair=%s|%s'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');

BabelFish

javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=s.substring(5,s.length);url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&lp=%s_%s&trtext='+encodeURIComponent(testo)+'&btnTrTxt=Traduci';} else{if (quote=='') url='http://babelfish.altavista.com/babelfish/tr?trurl='+encodeURIComponent(location.href)+'&lp=%s_%s&btnTrUrl=Traduci'; else url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&trtext='+encodeURIComponent(quote)+'&lp=%s_%s&btnTrTxt=Traduci'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');javascript:var quote=document.getSelection();var s='%s'; if ((quote=='' && s.length>5)) {testo=encodeURIComponent(s.substring(5,s.length));url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&lp=%s_%s&trtext='+encodeURIComponent(testo)+'&btnTrTxt=Traduci';} else{if (quote=='') url='http://babelfish.altavista.com/babelfish/tr?trurl='+encodeURIComponent(location.href)+'&lp=%s_%s&btnTrUrl=Traduci'; else url='http://babelfish.altavista.com/tr?doit=done&intl=1&tt=urltext&trtext='+encodeURIComponent(quote)+'&lp=%s_%s&btnTrTxt=Traduci'};t=''; qc=0; chunks=url.split('%s'); for(i=0; i<5; i++){if(s.charAt(i)=='%22')qc=qc^1; t+=((s.charAt(i)==' '&&qc)?'^':s.charAt(i)); }args=t.split(/\s/); nurl=''; for(i=0; i<chunks.length; i++){nurl+=chunks[i]; if(args[i]!=undefined) {args[i]=args[i].replace(/\^/g,' '); nurl+=args[i]; }}location.replace(nurl,'');

Suggerimenti e opinioni sono gradite :-) .

Altre letture::
Firefox Tip: How to set up multi-parameter keyword searches – Lifehacker,
Il blog che non c'è – Tradurre pagine Web al volo,
O'Reilly Network — Using Google to View MySpace or Any Restricted Site,
JavaScript Strings
ìì+JavaScript Strings.

Schede anche per il prompt dei comandi

Una delle cose più brutte di Windows è sicuramente la linea di comando, a parte il fatto di non poter fare quasi nulla di interessante è anche graficamente orrenda. Se volete migliorare le potenzialità della linea di comando vi consiglio di installare Cygwin che è un port su Windows della shell dei comandi di Linux.

Per migliorare un po’ la grafica potete scaricare un simpatico programma opensource che si chiama Console :-D . Fra le funzioni più interessanti di questo programma:

  • implementazione delle schede anche per la shell dei comandi;
  • possibilità di utilizzare il copia/incolla anche da shell dei comandi;
  • possibilità di personalizzare hotkey, opacità e colori della shell dei comandi.

Non è tutto rose e fiori:

  • per configurare il programma bisogna modificare il file console.xml con un editor di test;
  • è più lenta ed occupa più memoria del normale prompt dei comandi.

Il fatto di abilitare le schede anche nella shell comunque per me basta e avanza per chiudere un occhio su questi piccoli problemucci :-) .

Console

Se volete aggiungere come ho fatto io Cygwin alle possibili schede da aprire dal menu File -> New, aggiungete queste righe al file console.xml:

<tab title="CygWin" icon="C:\Cygwin\cygwin.ico">
<console shell="C:\cygwin\cygwin.bat" init_dir="C:\Cygwin\"/>
<cursor style="0" r="0" g="255" b="0"/>
	<background type="0" r="0" g="0" b="0">
		<image file="" relative="0" extend="0" position="0">
		<tint opacity="0" r="0" g="0" b="0"/>
		</image>
		</background>
		</tab>

Cambiare il cursore a seconda del tipo di file a cui punta il link

Avevo già postato come cambiare il cursore del mouse quando passa sopra a dei link Javascript e a link con target=_blank”, vediamo ora come si può far apparire l’icona del tipo di file a cui punta il link. La cosa è fattibile anche utilizzando l’estensione Link Alert, qui cercherò di ottenere lo stesso risultato solamente utilizzando il file userContent.css.

Ecco gli strumenti utilizzati:

  • la possibilità di sovvrascrivere gli stili di una pagina web usando il file userContent.css;
  • il supporto ai data link; per ottenere il data link, se non si possiede un’applicazione apposita, si può utilizzare: The data: URI Kitchen;
  • una nuova potenzialità di CSS 2.1 che è spiegata nei dettagli in questo bellissimo articolo..

Per quanto riguarda il file userContent.css non c’è nulla da dire (chi non sa di cosa sto parlando legga la documentazione linkata sopra), sul perché usare i data link e non un link ad un’immagine locale si spiega col fatto che il codice appare come eseguito dalla pagina web e Firefox blocca l’accesso ai file locali per ragioni di sicurezza (si può creare una policy per bypassare questa restrizione ma è una pessima idea). Si potrebbe usare un’immagine hostata online ma questo rallenterebbe la navigazione.
Per quanto riguarda i CSS l’articolo in lingua inglese è molto comprensibile, la nuova capacità che si sfrutta è la possibilità di applicare uno stile a qualcosa che finisce con particolari caratteri, per esempio:

a[href $='.pdf']

indica un elemento della forma <a href="......pdf">, cioè un link ad un file pdf. Il carattere $ deve essere tradotto come “finisce con”. Nell’articolo (di cui consiglio la lettura) ci sono altre interessanti applicazioni su come utilizzare queste nuove potenzialità dei CSS che – udite, udite – vengono supportate anche da IE7 :-O :-O.
Copiare il seguente codice nel file userContent.css:

/* Mostra l'icona dei DOC quando il cursore passa sopra ad un link che punta a un file DOC */
	a[href $='.doc']
{
	cursor: url("data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%09pHYs%00%00%0E%C3%00%00%0E%C3%01%C7o%A8d%00%00%07%8DIDATx%9C%C5%95%DBO%93y%1E%87%BB%17%26%FE%05%DE%7BE%26%F1b%C7M%5Cg%C3do%C6%CD%1A%D9%98qf%8D!kf%5C%8D%8E%C3%EC%B2%EB%60t2%8C%19%ED%8E%83%D4%F5%C4%8Ex%A8%02R%E4P%04%11%A5%22%08%83%3A*%A8%20x%00%81RhK%E9%F9%40%5B%DA%BE%A7g%2F%DE%F6%85z%18Iv%B3%DB%E4%93%A6i%D2%CF%F3%7C%BF%EF%EFW%9D%0E%9D%EE%FF%9A7%7D%D1%D2%3D%C8%C2%5C%EEzL%F3%CD%01%9Ao%0E%D0%D49%C0%A5%8EG4v%3C%A2%B1%FD%11%E6%F6%874%5C%7F%40%BD%A5%8F%3AK%1F%B5m%BD%D4%B6%DD%E7b%5B%2F%FF%11%C0b_%8A%02J%E6%5D%01Y%06I%86%9Ak%F7%D9%7D%D0%F8%F3%10%3At%BA%DD'%3DdRx%DCE%E1q%17%3B%0FO%B2%BDd%8CO%F5%CF%C8%DF%3F%CC%A6%7D%83l%D8%D3%C7%86%A2%BB%AC%2B%ECa%5Da%0F%1F%7C%DE%CE%EA-MZ%B1%A2%80%BC%00%C0t%F5.%CE%20%E4%17%EA%DF%0C%91%01%B0%DC%8F%BD6%0D%5D%11-%95%960%95%960%A7%5B%02%9Cn%09Pfv%B1r%B3%F9%B5%E5%A2%0C%D5W%EE%E0%0C%C2%B8%5B%E4%B7%1B%FF%F2z%88%85%00YcE%FDAIV%10%25%85%94%A0%90%12d%12I%99xB%22%16%97%5E%0F%A0(%1A%40%E5%E5%5B%1A%C0%E3%898%BF%5E%BF%FDU%08%1D%3A%5D%E1qW%16%80%ACd%97%0B%A2B2%95%5D%3E%1B%13(3%BBX%91o%D2%00%1A%FA%A2Y%A9h%EAY%00%10%E3%F6%D3%20%EF%AE%DD%C2%2B%00%3B%0FOb%B9%1F%A3%B8%7C%84%5D%86!v%19%86%D8Pt%97%E6N%1B%82%A8%F0%9B%FCS%24%922%1B%F6%F4%B1%B9%F8%01%9B%8B%1F%B0%AE%B0%87C5%1E%0D%40N%03%00%84b%22%C3%8E%18%E7.u%D3%3D%E4%A7%A3%DF%CB%B5%BE%19%9A%EE8%A9%EF%9A%CA%86x%19%A0%CC%EC%A2%CC%ECb%C7%BEV%00%3E%FBn%80_n8J%EF%90%9D2%B3%8B%02%FD%3D%DE%DBz%15%BDq%14%83%C9%CA%3B%1FUd%01%CC%A5ddY%A1w%D8%C7%B9%C6.%B6%ED9%CC'_%96%B0%E9%8B%FD%AC%DF%F65%BF%FB%D3%97%BC%FFq%C1%3C%84%0E%9Dn%7B%C9%18%96%FB1d%05%0C%26%2B%3B%F6%B52%E5%8Ac0Y)3%BB%C8%C9%2B%A5w%C8Ns%A7%8D%F7%B6%5EeY%EEF%82%E1%24%06%93%95%E5yg%B2%00%86%1D1%FAF%FC%84%E3%22%0D%B7%9C%D4%F68%A8%E9%B6S%D31%A1%A5%BA%D3%96%0D%F0%A9%FE%19%0D%5D%11DI%A1%B8%7C%84%1D%FBZ%A9%EF%F4R%A0%BF%C7%EF%F7%BC%20'%AF%942%B3%8B%B5E%0F%C9%C9%2BeO%A9%11%7F(%85%DE8%FA%0A%40M%8F%87%BA%DBn.t%B98%D2%3C%C1%E9%EB%0E%F6W%F5%13M(D%E6dBq%99%AA%8E%97%006%ED%1B%A4%A1%2B%82%20*%EC2%0C%B1c_%2Bz%E3%A8V%BE%AE%B0G%1B%FD%B2%DC%8D%3C%1F%F7%E2%0D%26%D1%1BGY%B6%E6h%16%40I%FD%0BN%5C%B1q%B6%7D%9A%13-%93%9C%B68%D9_%D5%CF%EC%9CBxN%26%18%95%A9%B81%95%0D%F0%C7%AF%FBi%E8%8A%90%12d%0A%F4%F7%D8%7D%D2%A3%95%F7%0E%D9%C9%DF%3F%AC%7D%DESj%C4%1BL%E2%F1').%1Fa%D9%9A%A3%E9%13%A3%02%5C%E8rQ%7B%7B%06S%F7%0Ce%ADv%CA%DBT%80%C8%9CB(%26%13%88%CA%18%DB_%02%D8Pt%97JK%98%94%20%F3%C97%B7%B5%B2iw%90%608I%EE%CE~r%F2J5%7B%8F%3F%89%DB%9F%98%07H_%3E%FB%AB%FA%DF%98p%5C!%18%93%F1%CF%CA%9C%B1%D8%B3%01%D6%15%F6Pi%09%93H%CA%E4%7CXON%5E)%97n%3C%26%3C%2B%10%9E%15%C8%F9%B0%9Ee%B9%1B9Q%7DM-%F7%26qy%12%EC%3E%D6%CB%D2%DC%12%F5%E2%91%14%04I!%25*%24%05%85%B9%94B%2C%A9%10M%C8D%E6d%821%99%C0%AC%8C7%22s%F2%9A%F3U%80%D3-%01%ED%92%89%C5%25%AD%3C%18N%E2%0F%A5%B4%B1g%CA%9D%EEy%80%FA%5BNj%7F%B4c%EA%9A%E2B%E7%24%957l%9C%BBn%E5l%DB8%A7%AE%8Eq%B2u%94%40T%C6%1B%91p%87%25N%B4Ng%03%7C%F0y%BB%060%1B%13%16U%9E%01X%B2%EA%00)1%DB%3C%BE%C0%3C%B3w%DF%AC%8C%3B%2C%E3%0AJ%1Cmy%0D%40%E6%02%CA%E4P%8D%07%83%C9%8A%C1dEo%1C%A5%B8%7C%84%E2%F2%11v%1F%EB%CD%CA%92U%074%F3%8A%1B%13%D9%E6W%5E%F0%AF%CB%23%9Ch%1E%C6%13%91%98%09%C98%03%12%86fW6%C0%EA-M%AC%DClf%E5f3%2B%F2M%AC%C87%F1%CEG%15%2C%CF%3B%C3%F2%BC3%2C%5BsT%CB%D2%DC%12%96%E6%96%B0d%D5%01%96%AC%3A%C0%2FV%EE%D5%AC%D5%9D%AB%E7%3D%1C%97%09%C4Ts%B5%5C%C2%19%90%B0%FB%25%BEorg%03%BC.%15M%B7H%08%0A%09A%A1%A5%D7M%F3%BD%19.%FD%E4%C2%7C%7B%9A%BA%5B%0E.%A6w%5E%9567%5E%B7r%A6m%9CSWG5%F3%E3M%C3%1C%BD%F4%9C%23%E6gL%07%25%1C~%09%9BWDo%F6%BC%1D%E0%7CS%0F%F1%942%9Fdvb%09%99hB5%9EM%EF%3B%1CO%3F%EDQ%19%DF%AC4o%1E%94%B0%FBE%26%BD%22V%B7%C8%B7%F5%BEE%004%FEH4)%13M%C8%F3%E6%3D%0E.v%DB%A9%BE9EU%87%8D%8A%F6%09%8C%96l%F3%B2%05%E6%FF4%3F%C3%D0%F0%94%D2%BA'j%B9GdlF%A4%B86%F0v%00%A3%B9%9B%C8%9C%BA%CF%85%09%C7%15%C2q%D56%14S%AF%D6%40T%BD%60%BC%11%09OX%B5%9E%0E%A6w%EE%93%B0y%25%ACn%91%D1%19%91%91i%81%BD5%8B%008%DB%D0E(%5DR%97%FEG%CB%98%9F%CF%98_%1B%A3%BCu%94%1FZ%16%987%A6%CD%EB%9Fr%A8n%88%92%8BC%1C%AC%19%D4%CA%9F%3B%04%8A%AACo%078S%7F%93%40%C6.m%E8K%9Fg%EF%AC%847%22%E3%89%C8%B8%D3%C6%AE%B4%B1%23%201%E5S%1F6%ABGd%DC-%F2%C2%250%ECT%CB%9F%D8%05%FE~!%FCv%80Su%9D%EAH%23%926ZOX%BD%C9%DC!Y%2B%CD%8C%DA%E1%97%98%F2K%18%EA%9Fp%A8n%88%EF%2F%0Er%B0f%90%7F%98%1E%A3%AF%1E%E0%99C%60hJ%E0%F1%A4%C0_%2B%23%8B%00%A8%ED%60%26%94%B6%0B%89%B8B%12%AE%90%C4t%40-%CC%94%DA%7D%12S%5Eu%CF%13%5E%D5xlFd%D4%250%3C-%F0%CC%A9Z%0FN%A5x%3C)%D0o%13(8%3F%FBv%80%F2%8B%1D8%83%12%CE%80%A8%16%FAE%1C~%11%BBO%C2%EE%13%99%F4%89%D8%BC%226%CF%FC%A8Gg%04F%5D%02%23N%81%E7N%81%A7%F6%14O%A6%04%06'%05%06l)%1EM%A4%E8%1BO%F1%D9%B9%E8%DB%01N%D6%DC%60%CA'i%99L%EF%D5%E6%11%99%D0J%05%C6%D3%B6%2F%D2%C6%CF%9D%02O%D3%BB%1E%9AL10%99%A2%7F%22%C5C%ABZ~%7F%2C%C5vclq%006%AF%C4%9DG6%2C%3FYi%BC9%C1%85%EB%13%9C%BA%E2%E0X%EB%B4%96%23W%A61%5CvQ%D2%3C%C3w%97%3C%1Ch%F4%F2m%83%8F%E2Z%3F%7Bk%82%14U%87%F8%5BU%84%2F*%23%EC%3C%1Fe%FB%B9(%DB%CE.%02%E0%07S%3B%05%DF%1C%E7%0F%7F%FE%8A%F7%3F.%60%F5%FA%1D%FCj%DDV%DE%5D%BB%E5%BF%96%9F%05%F8_%E5%DFj%04%18%1B%A2%DFe%3B%00%00%00%00IEND%AEB%60%82"), auto !important;
}

/* Mostra l'icona dei PDF quando il cursore passa sopra ad un link che punta a un file PDF */
a[href $='.pdf'] {
 	cursor: url("data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%20%00%00%00%20%08%06%00%00%00szz%F4%00%00%00%09pHYs%00%00%0E%C3%00%00%0E%C3%01%C7o%A8d%00%00%08KIDATx%9C%C5%D4yp%94%F5%1D%C7q%E2%C1%11%8DP%D4R%3C%DBz%22%ADUt%0A%23%8AU%CB8%3A%26XA%24%83%10nM%070%E2%D1%12%A1%18(%A7%26%88%3A%B1)%D8%80%01%92l%8E%5DCvW%06H%DC%B0d%13%92%5Ds_%BB%CF%DE%BB%CF%B5G8j%D4%24%FB%EE%1F%1BB%1D%9D%1A%3Av%FA%CC%7C%FFx%8E%99%EF%EB%F7%F9~%E7%195%8AQ%A3%FE%AF%F5C%1F%18%0C%064%9A%0A%8A%8A%B5%14%17%EB(.%D6R%5E%5E%89V%5B%C9%A7%BAJt%3A%3D%DA%F2%23%94%96~JIq9%1AM9z%BD%11%8D%A6%84%8E%8E%0E~%14%C0%E1%C3%E5%14%16k)**GS%18%07%94%95%1D%A1%BC%BC%92%D2%D2%0A%CA%CA*()%89%BF%2F**%A5%A4DK%5E%DE%5E%CCf3uuu%FF%191%B8%EB%1D%06%3E%C8ep%F7%7B%0C%EEz%87%C1%ED%3B%88m%D9Jl%D3%DB%C46%BE%0D%99%1B%E1%CFo%C1%9F2%E1%F57%E1%F57%89%BD%FA%1A%B1%8Cu%0C%BE%F2j%BC%D6f0%B06%83%FE%B5%19%F4%AFy%85%A3s%9E%23%2Fo%1FF%A3%11%B7%DB%8D%C5b%C1%E3%F1%7C%3Fd%20%F7o%C4%96%AD%24%B6h%09%FCa.%3C%F94%CCz%0C%A6%CF%84%DFL%83)S%E1%EE%A9p%D7%3Dp%E7%14%B8c%0A%DC~7%DCv%17%DCz%1B%DCx%0B%B1%C9710%E9%06%BE%9Et%03%83%D7%FE%94%E4%84%04%0A%0A%0ESZZ%0A%80%20%08%D4%D6%D6%E2p8%BE%8B%18%F8(%EFb%E3%99%8F%C4%9B%BA%5C%208a%E3%26%98p%1D%D8%ED%D03T%A9%0B%E1%9A%89%60w%80%DDN%CCn%A7%2F1%89%B3c%AFB%1D%93%88%3Cz%1C%C9%09%09h4e%14%14%14p%E1%BA%90%84%20%08%DFF%0C%7C%90%1Bo%FE%C8%A3p%FF%03%F1%93%3A%9D0%F9%26p8%E2%CDz%EC0%26%11%12%AF%897%BEn%128%1C%7C3~%22%7DI%138s%D55%84%C6%5D%8Do%ECU%B8%87%00%3A%DD%11%F2%F3%F3%89%C5b%C3%08A%108y%F2%E4%B7%93%18%7C%EF%7D%98%F5%3Bxp%3AL%F9%15%FC%F2N%10%04p%08%90%B9%01%92~%12O%60%D2%E4!%94%C0%E0%C4%EB%89%D9%1D%C4%ECv%BE%D9%BA%8D%C8%B8%24%82c%12%11F%8F%A3%EB%8A1%24'%24PQ%A1%A7%B0%B0%10%80X%2C6%5C%17%92%B8%08%C8%CE%81%19%0F%C3%BD%F7%C7g%7C%CB%2F%E2%F1%DFx%2BL%BE%19n%1E%BA%BF%E9V%98t%038%1C%0C%8E%9F%18%8F%FE%EA%F1%9CILB%19%3Ay%C7%95ci%BAl4%C9%09%09%1C%3F%5E%8D%5E%AF'%3B%3B%9B%9C%9C%1C%B2%B3%B39p%E0%00%26%93%89%8E%8E%0E%EA%EB%EB%E3%88%C1%9D%BB%E2%D1O%99%0A%F7%DC%0BS%EF%05%B7%1B~%7D_%7C%1C%3F%BF%FDb%22%0E%07%2CJc%20i%02%B1%1E%3B%E7%C7%5DMhL%22%BE%2B%C7b%BFb%0C%B6%CBGS%9Fp%05%C9%09%09%E8%F5%9FQYi%A4%B4T%8BFSJqq%09%85%85%1A%F6%EF%3F%40%5E%5E%1Ef%B3y%08%B0%7D%07%FCv%3A%CC%98%093%1E%82%07g%C0%7D%D3%E2%E3%B8%E3%EE8%E0%C6%5B%E2%23%B8%FEg0%FEZ%FA%93%26%F0%D5%BF-%9E%E7%CA%B1t%5E%3E%9A%D3%97%5D%044%DAZ%B0Z%9B%A9%AF%B7b6%D7Su%E2%24%9F%1D%AD%E2%D8%D1%13%1C%3Cx%98%83%07%0Fa%B3%D9%18udA*%C9%09%09%3Fz9%04%0F%9D%9D%0EZ%5B%3A%B1Z%5B%B0X%1A1%99%2C%1C%3BV%83%C1p%82C%87%8A0%1A%8D%8C%E8OX_%DF%84%CD%D6B%7B%7B7%3D%DD%0E%1C%0E%17.%B7%0F%9F%2F%88%D7%EB%C7%2F%B8%F0%CE%99%83W%AF'%E0%0F%E2%0FHx%BD%01%5CN%2F%DD%DDN%DA%DA%BA%B1%DA%DA%A8%AB%B3Qc%B2PUu%8A%EAj%0B%06%83ad%80%B6%F6.%3A%3B%7Bp8%5C8%9D%9E%EF%02%9Cn%BC))%23%06%98O%9E%A6%B6%B6q%E4%00A%10%E8%B1%3Bp%3A%3Dx%3C~%3C%1E%1F%01%BF%88(*%A8j%88P(Bp%D1b%A4%8A%0AT5%84%AA%84%11E%05%BF_%C4%E5%F2%D1%DD%23%D0%D6%D6%85%D5%D6Jm%AD%95%3A%8B%8D%FA%06%DB%C8%01n%B7%1B%C1%E1%C2%E5%F4%E2%F3%05%08%F8E%24I%25%1C%8E%10%89D%095%B7%E0%7F%F4Q%E4%F5%99C%CFz%09%87%A3%C8%B2%8A%CF'%E2tz%E9%EAr%D0%D2%D2ICC3%0D%0D%CD%D8lm%23%07%F8%7CA%9C%82%07%8F%DB%87%DF%2F%22J%0A%A1P%84%DE%DE3%F4%F6%9E!%9A%93C0k3%CA%EA5D%3E7%11%8D%F6%0E%23DQ%C1%EB%0D%60w%B8ho%EF%C6fk%C5jm%A5%A9%E9%12%00%A2%A8%E0v%7B%F1%F9%82%88%A2%8C%2C%ABD%C2%D1xsIFNM%25%DC%D9%85j0%A2%ACXA%24z%86H%24%8EP%94%10~%FF%85%14%EC47%B7%F3%C5%17%ED45%B5%FF%F7%00U%09%11%8D%F6%C6%CB%60%40%5C%BCx%F8%C4%C1%D7%5EG%DD%B1%93%B0%1A%26%1C%8E%C6%F7%23(%E1v%FB%E8%EE%16hi%E9%A4%A9%A9%83%E6%E6%8E%91%03T5%8C%CF%17%20%18%94%90%25%85%90%1A%26%1A%ED%A5%D7%EFGy%E1%05BG*%87%01aQF%5E%BD%9APj*%D2%BE%8FQ%B4%3A%942-%C1C%85%08%BA%23%B4%B6v%D2%D0%D8Lk%EB%25%00%C4%A0L0(%0D%C7%AF%AA%F1E%8Bd%E7%10%5C%B0%80%88%CBC%A4%E6%24%F2%BE%8FQ%DFy%17q%F3%16%A4%F4%3F%22-Y%8A2m%1A%E2%0B%0B%F0m%CA%C2%F9%D6%06%BA%B7%EF%A2%BE%DEFkk%E7%C8%01%92%A4%20%8A2%92%A4%20%CB!%14%25%8C%DA%D5%8D%F4%CC3%84%3E)%40.)E)%2BG%AD%AD%23%E4%10%08%87%22%84B%11%14%25D%E0T%1D%DE%3D%EF%E3%C9%DA%82sS%16%1D%EF%EE%A6%B6%B6%81%E6%E6KXBY%0E!I%0A%92%A4%22I*%B2%C7%8F%B4m%3B%F2%5B%1B%88%06%25%A2CK%17%0EG%87%E7%AE(!%02A%19%AF7%80%20x%E8%EA%B2%D3%FA%F1~%3A%D6dPSS%7FiK%A8%86%22%C8%B2%8A%24*H%BA%0A%C4%7F%ECG%5C%F8%22j%8F%03%E5%CC%97%EC%D9%F3!%3A%5D%05%81%80%8C(%AA%2CZ%B4%18Q%94%F1x%02%D4%D6%9Ef%F5%EA%B5%04%022%8D%8D%CD%98%CD%A7%A9%AE%3E%85%D5%DA%3Ar%40%24%12EQBHy%7B%09%EE%FF%84%60F%06b%A1%06YR%09%04d%1E%7F%EC%09V%ADz%89%40%40%E6%D4%A9%D3%3C%F5%D43%04%02!%2C%96%06%AC%D6V%E6%CE%9DOKK%3Bmmv*%2BO%604%1E%A7%AA%CA%3Cr%40o%EFY%14%C3g%88%1B6%22o%DF%81%7F%CB_%87%F6B%C1%E9%F4%B2r%E5*%B6m%DBIe%E5Qf%CE%7C%98%B4%B4%25%EC%DE%BD%87Y%B3%1E%E3%A3%8F%F6%F1%F4%D3%C9%3C%FE%F8l%0E%1E%2Cb%E1%C2%C5%3C%FF%FC%02%B4Z%E3%C8%01%E7%CF%FF%13%B7%DEH%E8%8D7%11%DF%7B%7Fx)%83A%19%B3%D9%C2%D2%A5%CB%D9%BCy%0B%2F%BD%F42%9F%7Fnf%D9%B2%95%2CY%B2%1C%A3%F1%04O%3E%F9%14%5B%B7%EE%24%3F%BF%80%19%D3%1F%E2%E5%97%D7%F0%C4%13%BF%BF4%40_%DFW%9C%3D%7B%8Eh%F4%0C%AA%1AF%96UDQ%26%10%90%D8%BB7%9F%E5%CBW%B2b%C5*%E6%CE%9DOu%B5%99%D4%D4%17IK%5B%8AVk%60%F6%EC%D9df%FE%85%DC%DC%BD%DCw%FF%03%AC%5D%BB%0E%8DF%87Nw%09%80%FE%FE%01%BE%FC%B2%8F%B3g%CF%0D%FF%5E%25I!%18%94%C8%CA%CA%C2fk%A2%A2%C2%C0%FA%F5%99%A4%A5-c%DD%BA7%D8%BD%FBC%E6%CC%99Kn%EE%DFy%EE%B9%F9%CC%9B%B7%80%FC%FC%22%E6%CD%9B%CF%FA%F5Y%23O%40%AF%D7%03%D0%DF%DFO_%DF%D7%9C%3Bw%9Eh%B4%17U%8D%A0(*~%BF%88%C7%E3%C7%E5%F2%D0%D3%E3%A4%BD%BD%87%96%B6%0E%1A%1B%9B%B1X%AC%98L%16%8E%1F%AFAo%A8%A2%B2%F2%18Z%AD%11Mq%05%C7%8E%D5%A0%D7%EB%7F%18%602%99HOO'%25%25%85g%9F%7D%F6G%A9%94%94%14%D2%D3%D31%99L%3F%0C%F8_%D7%BF%00%95%F9%F8%8Dk_%C1%D1%00%00%00%00IEND%AEB%60%82"), auto !important;
}

quindi provare a passare sopra a questi due link (il link al file DOC non punta a nulla, il link al file PDF punta alle FireFAQ :-D )

File DOC
FireFAQ

NOTA: se il link al file è un link javascript oppure un il link particolare, come quello a file su DivShare, il trucchetto non funziona.
NOTA 2: se il link ha target=”_blank” e si usa il codice che ho postato tempo fa per modificare il cursore su questo tipo di link, viene usato il cursore del target=:”blank” che ha la precedenza.

Se vedo che qualcuno è interessato posso aggiungere icone per altri tipi di file come ZIP, EXE eccetera e magari creare uno stile e caricarlo su userstyles.org.

AGGIORNAMENTO: per chi fosse interessato ho caricato lo stile su usertyles.org, lo potete installare da questa pagina.
Ringrazio Weishun e sopratutto Jason Barnabe di userstyles.org che mi ha consigliato di utilizzare la codifica in base64 dell’immagine; infatti, se non si usa tale codifica Stylish si rifiuta di installare lo stile e produce un errore di “string too long”.

Il mio inglese non è un granchè quindi se qualcuno ha qualche suggerimento per migliorare la descrizione che ho fatto dello stile è benvenuto :-D .

Usare Google come calcolatrice

Magari ero l’unico a non saperlo, comunque ho scoperto che Google si può usare anche come calcolatrice :-) . Esegue operazioni anche abbastanza complesse e può inoltre essere usata per effettuare conversioni fra unità di misura diverse. Qui sotto un esempio di cosa si può fare semplicemente digitando nella searchbar un’espressione matematica, se non sapete il risultato del calcolo cliccate sul link e Google vi darà la soluzione :-D ; se invece sapete già la risposta potete controllarne l’esattezza,

sqrt(2)/2
pi (pi-greco, misura della semicirconferenza unitaria)
sin(pi/4)
e (il numero di Nepero)
(1+1/10000000000)^10000000000
125^(1/3) (per chi non lo sapesse è la radice cubica di 125)
e^(pi*i)
2*ln(i)
e^(pi*i/4)
(1+sqrt(5))/2 (la famosa sezione aurea :-) )
i^2=-1 (i è la radice quadrata di -1)
(1+i)(1+i)
1 euro in us$
1 miles in meters

il mio peso in libbre
0 celsius in fahrenheit
911 fahrenheit in celsius
1 kb in byetes
1 KB in bytes
3 in binary
1 pint in liters
perché la 500 viene chiamata mezzo litro ?
1 MB in KB
c (velocità della luce in m/s)
c in km/h (velocità della luce in chilometri orari)
1 hp in kilowatt (equivalente di 1 cavallo in kilowatt)

Velocizzare Firefox

Siccome ho visto che questo Blog è stato trovato cercando “velocizzare firefox”, senza che ci sia alcun post sul tema,raccolgo qui tutti i metodi (o almeno tutti quelli che conosco) per raggiungere lo scopo.
La configurazione standard di Firefox infatti (e non potrebbe essere altrimenti) è pensata per funzionare su ogni PC e con qualunque tipo di connessione, resta però possibile personalizzare il valore di alcune variabili in modo che meglio si adattino alla connessione e all’hardware utilizzati.

Esistono tre metodi per velocizzare la (già veloce) navigazione con Firefox:

  • utilizzare un software esterno (naturalmente freeware) chiamato FireTune;
  • utilizzare un’estensione per Firefox:FasterFox;
  • impostare manualmente alcune preferenze avanzate di Firefox come spiegato in questo Topic scritto da @halifax (un moderatore del Forum di MozillaItalia)

Foto di Speedy Gonzales

Il mio consiglio è di utilizzare il terzo metodo che si basa solo sull’ottimizzazione delle preferenze di Firefox senza dover installare nessuna estensione o software esterno. Vi invito a leggere attentamente quanto scritto nel Topic appena citato e di riportare le modifiche nel file
user.js
, in questo modo la configurazione ottimale sarà trasportabile facilmente su più Profili.

Riporto qui di seguito il contenuto del mio file
user.js:

// Configurazione per velocizzare Firefox con linea Adsl
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.maxrequest", 8);
user_pref("network.http.request.max-start-delay", 0);
user_pref("content.notify.backoffcount",  5);
user_pref("content.max.tokenizing.time",  2250000);
user_pref("content.notify.interval",  750000);
user_pref("content.notify.ontimer" , true);
user_pref("content.switch.threshold",  750000);
// Quello che segue vale *solo*  per le connessioni a banda larga
user_pref("network.http.max-connections",  48);
user_pref("network.http.max-connections-per-server", 16);
user_pref("network.http.max-persistent-connections-per-proxy", 16);
user_pref("network.http.max-persistent-connections-per-server", 8);

// Questa preferenza invece dipende dall'hardware in uso
user_pref("nglayout.initialpaint.delay", 100);

NOTA: questa non vuol essere una guida alla velocizzazione di Firefox, ma solo un modo per condividere la mia configurazione che si basa sulla guida presente sul forum di MozillaItalia, e che molto probabilmente è la migliore scelta per tutti gli utenti con una connessione a banda larga.

Sul web ci sono molte “pseudo” guide alla velocizzazione di Firefox e molte sono un brutale copia/incolla di contenuti estrapolati (e non controllati) da altri siti. Si va dal mitico browsert.turbo.enable (che in Firefox ha lo stesso effetto di browser.pirla.auto.detection), ad una somma dei metodi proposti fino ad arrivare a delle impostazioni troppo spinte, che possono si aumentare la velocità di navigazione ma a discapito delle prestazioni globali del processore o dell’utilizzo della banda da parte di altri software.

Chi scrive non è un esperto di reti e ha come unico merito quello di aver letto la FAQ del forum di MozillaItalia ed averla applicata notando effettivi miglioramenti nella velocità di navigazione e senza avere di contro spiacevoli effetti collaterali. Quello che mi sento di consigliarvi è (salvo che non siate voi stessi esperti di reti) di fidarvi solamente della FAQ sopracitata.

Mostrare la Barra delle schede sul fondo

Per spostare la Barra delle schede in basso (sopra la barra di stato), inserire il seguente codice nel file userChrome.css:

/* Mostrare la barra delle schede in basso */
#content > tabbox {
-moz-box-direction: reverse !important;
 }

Barra delle schede in basso

Velocizzare avvio di Windows XP

AGGIORNAMENTO: purtroppo techtics (il blog da cui si poteva scaricare l'utility per velocizzare l'avvio di Windows XP) è stato chiuso, credo perché oltre all'utility qui segnalata c'erano anche le istruzioni per bypassare il WGA. Al momento non riesco a ritrovare da nessuna parte l'utility qui proposta ma terrò aggiornato il post in caso di sviluppi futuri. Nel frattempo provate a cercare il file con qualche software P2P.

Questo piccolo tool vi permetterà di velocizzare l'avvio di Windows XP (forse anche Windows 2000, con Windows 95 e 98 non funziona).

0) Come al solito quando si scarica un file da Techtics la prima cosa da fare é scaricare Firefox altrimenti non sarà possibile effettuare il download del file :-D

Scarica Firefox

1) Scaricate Quick Windows Logon da qui, é disponibile sia l'eseguibile che il file compresso.

2) Avviare l'eseguibile (o aprire l'eseguibile contenuto nel file RAR) ed eseguirlo, selezionare "Make logon fast" e dare conferma

Quick Windows Logon

3) A questo punto verrà riavviato il sistema ed al successivo avvio verrà effettuata l'ottimizzazione del settore di boot.

Fatto, ora l'avvio di Windows XP dovrebbe essere molto più veloce.

Cambiare il cursore su link popup e javascript

Questo trucchetto permette di cambiare il cursore del mouse quando quest’ultimo passa sopra a link con target=_blank e javascript, i primi sono quelli che (salvo impostazioni contrarie da parte dell’utente) vengono aperti in nuove finestre mentre i secondi sono attivati da controlli javascript e possono servire per espandere menu o per aprire pop-up. Per fare questo bisogna inserire il codice riportato qui di seguito nel file userContent.css che si trova nella cartella chrome del Profilo. E’ importante soprattutto conoscere se il link che si sta cliccando contiene codice Javascript, visto che tali link a volte vengono sfruttati per attacchi XSS (Cross Site Scripting).

Modifica il cursore sui link che aprono nuove finestre

/* Modificare il cursore nei link che aprono nuove finestre */
:link[target="_blank"], :visited[target="_blank"], :link[target="_new"], :visited[target="_new"]
{
	cursor: crosshair;
}

Modifica il cursore sui link javascript

/* Modificare il cursore per i link JavaScript */
a[href^="javascript:"]
{
	cursor: move;
}

Il codice è stato reperito qui e qui potete trovare tutti i valori da associare alla proprietà cursor.

A mio avviso però tutti i cursori standard mal si addìcono a essere utilizzati per segnalare che si sta passando sopra ad un link diverso dagli altri. La cosa migliore, a mio parere, sarebb e utilizzare delle “manine colorate”, in questo modo la forma della mano richiamerebbe l’attenzione sul fatto che si tratta di un link ed il colore servirebbe per indicare che non si tratta di un link tradizionale. La prima cosa da farsi, e forse la più difficile, è procurarsi dei cursori (file con estensione cur) da poter utilizzare, se qualcuno ne trova di carini e me li fa pervenire lo ringrazio, gli unici che sono riuscito a trovare io sono delle manone più che delle manine !!! Bene procurati i cursori andiamo su The Data: URI Kitchen e carichiamo dal nostro hard disk il cursore desiderato e clicchiamo su “Generate”. Vi verrà proposto un data:link, cliccateci sopra e vedrete che nella barra degli indirizzi apparirà il cursore seguito dal data:link, copiatelo e incollatelo al posto della stringa DATA:LINK nel codice sottostante:

NOTA: Il seguente codice dovrebbe funzionare con tutti i browser basati su una versione di Gecko maggiore della 1.8, io lo ho provato con Firefox 1.5.x Seamonkey e K-Meleon 1.0.x e funziona.

/* Modificare il cursore nei link che aprono nuove finestre */
:link[target="_blank"], :visited[target="_blank"], :link[target="_new"], :visited[target="_new"]
{
	cursor: url("DATA_LINK"), auto !important;
}

e analogamente per i link javascript. Se volete utilizzare esattamente i cursori che ho trovato io su Internet, cliccate col destro su questo < < LINK > > e scegliete “Salva destinazione come” e salvatelo nella cartella chrome del Profilo.

Ecco due screenshot di come vi apparirà il cursore con il file scaricato:

Cursore su un link con target  _blank

cursore su link  Javascript

NOTA:: per prove fatte il trucco funziona sia con K-Meleon che Seamonkey, se volete farlo funzionare su Epiphany e Camino, leggete questo articolo di Notoriousxl.

Limitare il consumo di memoria di Firefox

C’è molta gente che si è lamentata dell’eccessivo consumo di memoria di Firefox 1.5, vediamo come diminuire la quantità di memoria RAM utilizzata lavorando su alcune variabili di configurazione.

  • Nelle versioni 1.5 di Firefox è stato introdotto un sistema di salvataggio delle pagine visitate per facilitare la navigazione avanti e indietro questo però, soprattutto con molte tab aperte, può portare a consumi di memoria molto elevati. Per cambiare questa impostazione “nascosta” andiamo sulla barra degli indirizzi e digitiamo: about:config, quindi cerchiamo la chiave browser.sessionhistory.max_total_viewers e impostiamo tale variabile a 0 o con un qualsiasi numero intero che rappresenterà il numero di pagine salvate in memoria. Il valore di default è -1, che regola il numero delle pagine memorizzate in base alla RAM installata. Nello specifico:
    • 32MB –> 0;
    • 64MB ->1;
    • 128MB -> 2;
    • 256MB -> 3;
    • 512MB -> 5;
    • per valori di RAM superiori a 1 GB il valore prefissato è 8.
  • Impostare un valore predefinito di memoria per la cache, per farlo sempre nella finestra di about:config, assicurarsi che la preferenza browser.cache.memory.enable sia impostata a true e creare (se non esiste) una nuova variabile di nome browser.cache.memory.capacity ed impostare un valore numerico tenendo conto dei seguenti valori consigliati:
    • 256 MB di RAM – Impostare il valore a 10240
    • 512 MB di RAM – impostare il valore a 14336
    • 1 GB di RAM – impostare il valore a 18432

    NOTA: Firefox 2.0 utilizza di default questi valori “ottimizzati”.

  • Sempre nella finestra di about:config creare una nuova variabile booleana chiamata config.trim_on_minimize ed impostare il suo valore a true. Questo limiterà il consumo di memoria quando Firefox è minimizzato a icona
    NOTA: Su alcune particolari configurazioni di sistema l’impostazione di questa preferenza a true può causare problemi come l’impossibilità di minimizzare Firefox ad icona ma anche dei veri e propri crash dell’applicazione. Si noti inoltre che ha effetto solo su sistemi Windows

Qui aggiungo le righe di codice da aggiungere al file user.js per ottenere lo stesso risultato senza operare con about:config:

user_pref("browser.sessionhistory.max_total_viewers",0);
user_pref("browser.cache.memory.enable",true);
user_pref("browser.cache.memory.capacity",14336);
user_pref("config.trim_on_minimize", true);

Ci sono inoltre altre precauzioni che si possono tenere per evitare che Firefox occupi troppe risorse:

  • evitare di installare troppe estensioni e fare molta attenzione a quelle che si utilizzano, molte potrebbero essere loro stesse la causa dei memory leak;
  • ricordarsi di fare un po’ di pulizia resettando cache e cronologia;
  • evitare (se non strettamente necessario) di navigare su siti che fanno eccessivo uso di banner in Flash o al limite rimuoverli con Adblock./li>

AGGIORNAMENTO: Molte delle preferenze descritte in questo post sono già applicate alle versioni di Firefox superiori alla 2.0, a questo si aggiunga che l’attuale versione di Firefox (3.0) ha risolto moltissimi dei problemi di consumo di memoria RAM qui descritti.

Un’altra preferenza che può essere impostata per diminuire la memoria utilizzata è:

browser.sessionstore.max_tabs_und

Questa preferenza regola il numero di schede chiuse che possono essere ripristinate mediante >em>CTRL-SHIFT-T. Visto che tali schede vengono salvate con relativa cronologia è possibile che impostando un numero relativamente piccolo (2,3,4) il consumo di memoria si riduca notevolmente.

Personalmente credo che impostarla a 2 sia la miglior cosa, a me non è mai successo di ripristinare più di due schede che avevo chiuso, insomma può accadere di chiuderne una per sbaglio, due se si è particolarmente fuori giri, di più non credo possa mai accadere.

Approfondimenti:
Un test sul consumo di memoria RAM,
Firefox, estensioni esose,
FAQ di MozillaItalia sul consumo di RAM.