Archive - In Evidenza RSS Feed

Firefox 3.5: ottimizzare il DB con VACUUM?

Scopro e studio un post uscito qualche giorno su Geekissimo, incuriosito da un test fatto da un amico sul forum di Mozilla Italia. Mi dice di aver provato quello strano tool disponibile per il download, dovrebbe riuscire a velocizzare l’avvio di Firefox.

Collegamento ad un anonimo Dropbox, scarico e apro dapprima con 7-Zip ed in seguito con Notepad++ per capire di cosa si tratta. Tutto si riassume nell’eseguibile di SQLite ed in un file batch che lancia un’istruzione secca sfruttando l’eseguibile stesso:


@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )

Il comando VACUUM è ufficialmente sfruttato da SQLite e permette di:

When an object (table, index, or trigger) is dropped from the database, it leaves behind empty space. This empty space will be reused the next time new information is added to the database. But in the meantime, the database file might be larger than strictly necessary. Also, frequent inserts, updates, and deletes can cause the information in the database to become fragmented – scrattered out all across the database file rather than clustered together in one place.

In parole molto povere: dato un database di valori che vengono costantemente aggiornati (nel caso di Firefox succede con tutti i dati: segnalibri, password, cookie e altro ancora) la cancellazione di un qualsiasi dato lascia uno spazio “scoperto” (privo di valore) ma pur sempre conservato all’interno del DB. Il tutto succede fino al successivo riempimento di quello spazio. Ciò vuol dire che ci si trova davanti ad una normale “frammentazione” (lo stesso succede con l’hard disk ed un regolare uso del sistema operativo). Impossibile porre paletti a questa costante crescita, soprattutto con il passare del tempo.

Per questo motivo sarà possibile lanciare il comando VACUUM per:

The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure.

… copiare i valori in un DB temporaneo per poi spostarli (tutto in modo automatico) nel DB originale a fine pulizia, con conseguente guadagno di spazio occupato su disco.

# quanti DB SQLite possiedo?

E’ presto detto. In un profilo standard sarà possibile trovare (grosso modo) questi file:

C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firefox\Profiles\XXXX.default>dir *.sqlite
Il volume nell’unità C non ha etichetta.
Numero di serie del volume: XXXX-YYYY

Directory di C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firef ox\Profiles\XXXX.default

10/07/2009  17.51             7.168 content-prefs.sqlite
15/07/2009  16.43           495.616 cookies.sqlite
15/07/2009  16.35             9.216 downloads.sqlite
15/07/2009  16.50           299.008 formhistory.sqlite
30/06/2009  18.17             2.048 permissions.sqlite
15/07/2009  16.50         9.252.864 places.sqlite
06/07/2009  19.22             2.048 search.sqlite
25/05/2009  08.18            11.264 signons.sqlite
26/05/2009  09.57             3.072 webappsstore.sqlite
9 File     10.082.304 byte
0 Directory  132.868.112.384 byte disponibili

C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firefox\Profiles\XXXX.default>

Parliamo di circa 9 MB che dopo l’ottimizzazione sono passati a quasi 8, trattandosi di puro testo (salvato nei DB) non è affatto male ;-)

# il tool

Si tratta di un banale codice (comunque merito all’averci pensato) realizzato da InfoSpyware.com, il suo nome è IniFox, è stato presentato nel post (in lingua originale, spagnolo):

infospyware.com/blog/acelera-el-inicio-de-firefox-con-inifox

ed è disponibile gratuitamente anche su GxWare.org.

# la procedura

Innanzi tutto è d’obbligo mettere il solito avviso, che non fa mai male …

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

A questo punto i passi da seguire sono molto semplici, l’importante è aver scaricato e scompattato l’archivio contenente IniFox. Detto ciò, ecco il passo-passo:

  • CHIUDERE MOZILLA FIREFOX
  • Inserire i due file (batch & exe) di IniFox all’interno della cartella del proprio profilo. Per individuarla basterà consultare questo articolo nel support ufficiale di Mozilla Firefox: support.mozilla.com/it/kb/Profili#Individuare_la_cartella_del_profilo
  • Sarebbe bene fare un backup dei file *.sqlite dopo aver creato una cartella apposita. Personalmente ho optato per due veloci comandi dal prompt di MS-DOS, questo è quanto:

C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firefox\Profiles\XXXX.default>mkdir backup_gioxx

C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firefox\Profiles\XXXX.default>copy *.sqlite backup_gioxx
content-prefs.sqlite
cookies.sqlite
downloads.sqlite
formhistory.sqlite
permissions.sqlite
places.sqlite
search.sqlite
signons.sqlite
webappsstore.sqlite
9 file copiati.

C:\Documents and Settings\Giovanni\Dati applicazioni\Mozilla\Firefox\Profiles\XXXX.default>
  • A questo punto si potrà lanciare (doppio clic o sempre dal prompt di Ms-Dos) il file “IniFox.bat” e attendere la fine del processo.
  • Aprire ora Mozilla Firefox per notare (probabilmente) un minor tempo di caricamento dell’interfaccia principale.

Il processo può essere (ovviamente) ripetuto più volte nel tempo (magari lasciate passare una o due settimane tra un’ottimizzazione e l’altra) e -una volta tanto- non si tratta di applicativo invasivo che potrebbe mettere in pericolo i vostri dati (come invece spesso accade, nonostante si cerchi sempre di tenervi informati! ;)).

Cheers :-)

Skype: errori di debug in Internet Explorer 7

Per tutti coloro che lavorano in azienda e / o magari non hanno voluto effettuare l’upgrade ad Internet Explorer 8, oggi riporto e propongo un problema che nasce con la release 7 (di IExplore, appunto) e la versione 4 di Skype (probabilmente potrebbe succedere anche con una versione 3.8, non escludetelo a priori).

Si tratta di una serie di errori a catena che vengono mostrati a video, riguardanti una errata interpretazione di codice Javascript (apparentemente) con possibilità di effettuare il debug a fine processo. Cliccando sempre su Si / No (è indifferente, sigh!) si verrà poi portati sulla pagina web che si desiderava visualizzare sin dall’inizio. Magari questo problema non si presenta con Firefox (qualsiasi versione dalla 3.0.x in poi) o con Google Chrome, installati sulla stessa macchina e avviati con lo stesso utente attualmente collegato a Windows.

Dopo qualche test (disinstallazione completa della Java Machine, reinstallazione dell’ultima versione, disattivazione temporanea dei Javascript durante la navigazione, ecc.ecc.) l’arcano mistero è stato risolto: il componente aggiuntivo di Skype combina danni, ancora una volta. Affligge quindi anche Internet Explorer (casistiche rare ma comunque presenti) e necessita di essere rimesso al suo posto per poter lavorare correttamente.

Ecco quindi i pochissimi passaggi da eseguire per portare a termine il lavoro (scusate per la scarsa qualità dello screen fatto!):

  1. Dal menu Strumenti selezionare la voce Opzioni Internet
  2. Dalla scheda Programmi selezionare il tasto Gestione componenti aggiuntivi in basso a destra nella finestra
  3. Come filtro (“Mostra: “) impostare Componenti aggiuntivi attualmente caricati in Internet Explorer e attendere il caricamento della lista. In questa sarà possibile scovare le due voci relative al componente aggiuntivo di Skype. Selezionarle e fare clic sull’opzione Disattiva in basso a sinistra (al posto di Attiva, già spuntato di default)

Ora potrete confermare con OK per salvare le impostazioni e chiudere Internet Explorer. Riaprendolo e avviando un sito web che precedentemente dava problemi di debug non dovreste più veder comparire nulla di anomalo, giusto? :)

Buon lavoro!

Batch: migrazione verso UltraVNC 1.0.6.0 (PRE)

Ricordate il post riguardante la migrazione di massa verso UltraVNC? Ho avuto modo di notare un comportamento anomalo da un cliente. Il concetto si riassume in: “Winvnc.exe va in crash ogni qual volta si tenta di aprire una finestra di Explorer” (non il browser, l’esplora risorse di Windows ;)) … nella casistica migliore si otteneva un freeze della finestra client per poi subire il “Socket error” nel caso in cui si tentasse la riconnessione.

Provate ad immaginare la felicità dell’utente ogni qual volta c’era da avviare un PsKill da remoto per buttare giù i processi appesi di winvnc.exe nell’attesa di avviarne uno nuovo funzionante …

Tentando di non migrare più postazioni possibili (dove ho appositamente lasciato RealVNC 4 o UltraVNC 1.0.2) e tenendo sotto costante controllo il forum di UltraVNC sono arrivato a testare il server (ed il viewer) della versione 1.0.6.0, non ancora ufficialmente rilasciata (quindi, prendetela come un “as-is” senza troppe garanzie, personalmente posso dirvi che funziona correttamente).

# cambio di programma

A monte c’era una richiesta più complessa dell’ultima volta. Lo script andrà inserito al logon, tra una mappatura di disco di rete ed una stampante per capirci, ciò vuol dire che dovrà essere capace di confrontare la versione del PC con quella sul server e decidere di aggiornare solo nel caso in cui quest’ultima sia più recente della prima controllata. Per questo motivo ho deciso di ricontrollare lo script, migliorarlo laddove fosse possibile e inserire il nuovo controllo a monte per abbandonare il batch nel caso in cui questo risulti “inutile“. Vediamo nello specifico le modifiche …

Il codice iniziale era stato pubblicato qui:

dev.gxware.org/?15

contrariamente al nuovo pubblicato invece su:

dev.gxware.org/?17

Il controllo che si occupa di confrontare la versione del server e -di conseguenza- decidere il da farsi è il seguente:

fc %programfiles%\UltraVNC\winvnc.exe \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\winvnc.exe > nul
IF ERRORLEVEL 1 goto STOPSERVIZI

fc” è un comando riconosciuto da DOS, la documentazione è disponibile a questo indirizzo:

computerhope.com/fchlp.htm

Permette di confrontare due file (qualsiasi) permettendomi così di capire se la versione del server è pari a quella della macchina locale e reagendo -di conseguenza- diversamente a seconda della risposta ottenuta. Il “goto STOPSERVIZI” viene infatti richiamato solo ed esclusivamente se il risultato del confronto dice che le versioni differiscono tra di loro.

L’altra modifica è presto detta / fatta, si tratta dell’installazione full di una versione 1.0.5.6 riconosciuta come stable dagli sviluppatori del tool di controllo remoto, alla quale verranno poi modificate “a cuore aperto” le versioni di server e client portandole sul ramo “pre” della prossima 1.0.6.0:

:INSTALL
echo.
echo *** Installazione nuova versione UltraVNC ***
echo.
if not exist %programfiles%\UltraVNC mkdir %programfiles%\UltraVNC\
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\ultravnc.ini "%programfiles%\UltraVNC"
"\\NOME_FILESERVER\Install\Workstation\uvnc_silent\UltraVNC_1.0.5.6_Setup.exe" /verysilent /loadinf=\\NOME_FILESERVER\Install\Workstation\uvnc_silent\ultravnc.inf

echo.
echo *** Sovrascrittura con file pre-release 1060 ***
echo.
cd %programfiles%\UltraVNC
move winvnc.exe winvnc.exe.bak
move vncviewer.exe vncviewer.exe.bak
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\winvnc.exe %programfiles%\UltraVNC\
copy \\NOME_FILESERVER\Install\Workstation\uvnc_silent\1060_pre\vncviewer.exe %programfiles%\UltraVNC\
cd \
cd %programfiles%\UltraVNC
start winvnc.exe
goto FINE

Chiaramente lo script verrà eseguito -ancora una volta- come amministratore di dominio, così che l’utente non debba “metterci mouse” durante il processo. Il file di configurazione gli verrà passato proprio come prima (in caso di nuova installazione o disinstallazione e passaggio a nuova versione) e ad installazione terminata sarà immediatamente possibile utilizzare il prodotto.

Stavolta non ho rilasciato il pacchetto completo e pronto da utilizzare, potete modificare il vecchio batch incollando il codice rilasciato in /dev e scaricare i file della 1.0.6.0 da questa discussione sul forum di UVNC.

Non mi resta che augurarvi buon lavoro :)

ancora una volta grazie a $cliente (lui sa chi) per avermi fatto divertire nella ricerca e nello sviluppo di soluzioni a lui adatte :)

Io ci provo, friendfeed.com/gioxx

Ho sempre sostenuto che friendfeed è inutile, l’ennesimo pseudo-social network basato sull’idea originale di Twitter, ampliato con funzioni che già possiede un facebook o qualsiasi altro network che permette di fare aggregazione di contenuti. Nonostante i numerosi inviti degli amici che già seguo su Twitter ho sempre rinunciato ad aprire un account. Oggi ho “fatto il salto” e ho aperto l’account a mio nome, un pò per parcheggio, un pò per cercare di capire come funziona il tutto, un pò per la storia dei feed pompati della quale ha parlato poco tempo fa Francesco, con la speranza che quanto prima si lasci scelta libera all’utente (per poter sfoltire l’utenza standard non aggregata da ff).

La regola generale è che userò poco friendfeed, non aggiornerò mai lo stato di quest’ultimo ma continuerò ad essere fedele a Twitter. Sull’account ff ho collegato il mio blog, flickr, facebook (anche se non del tutto perché non riconosce correttamente il link delle mie note), last.fm, linkedIn e poco altro. E’ -allo stato attuale- un’aggregazione quasi completa dei miei contenuti sparsi sul web, relativamente comodo per seguirmi in un solo colpo. Ho lasciato l’accesso al profilo pubblico, non mi interessa proteggere gli update (così come in Twitter) e ho importato i contatti che avevo in facebook e che erano già iscritti a friendfeed. A questo punto manca solo l’indirizzo (indovinate un pò):

friendfeed.com/gioxx

Il mio nick è quindi “al sicuro“, potete aggiungermi se vi va ma -ancora una volta- vi invito a raggiungermi sull’account Twitter (twitter.com/gioxx) dove sono sicuramente più presente.

Ora è tutto ben accetto: consigli sull’utilizzo, muovere i primi passi, discussioni abbastanza interessanti, chi più ne ha più ne metta :-)

Siamo tutti dei tecnobabbi

Tecnobabbo” – The IT Crowd S01-01:

Già, cioè, ai piani alti non ci rispettano per niente!
Siamo solo dei tecnobabbi per loro!
Già! Se esistesse la parola tecnobabbo, questo è quello che saremmo per loro.
E’ come se fossimo dei paladini quando hanno un problema con le loro stampanti, ma una volta sistemate …
Ci gettano via come marmellata del giorno prima! [ ... ] Ecco cosa siamo per loro!

Tralasciando lo sconcertante fascino per la serie televisiva americana non ancora approdata in Italia (troppo bella per i nostri spartani palinsesti?) e della quale vi parlerò in un prossimo post, il prologo dell’articolo vuole riassumere con battute idiote ciò che il “genere informatico” subisce quotidianamente.


So Choose Wisely by ~technonerd0110

Siamo nati e cresciuti a pane e bit, errori di Windows, risposte a domande apparentemente senza soluzione per coloro che non vogliono saperne di tastiera e mouse a meno che non vengano forzati dal proprio datore di lavoro o dal figlioletto che vuole il PC in camera per godersi un pò di sana pornografia gratuita. Siamo una brutta razza, noi informatici.

Prendetelo come sfogo, sono giorni e giorni (in realtà anni e anni) che sento dire le stesse cose da una miriade di persone che si permettono lussi che non gli spetterebbero neanche “di striscio“. Dirigenti, “responsabili informatici” (volutamente messo tra virgolette), smanettoni dell’ultima ora e chi più ne ha più ne metta. La situazione è grosso modo la seguente:

  • tutti sono tecnici informatici
  • tutti sanno fare, mettere mani, smontare e rimontare
  • il lavoro dell’informatico è tra i più riposanti in assoluto, bisogna solo pigiare tasti a caso e non fare un cazzo dalla mattina alla sera davanti ad un monitor, magari trattando male i poveri utenti che chiamano e necessitano di aiuto
  • per mettere in piedi qualcosa che abbia a che fare con PC e Networking servono pochi soldi, sono solo scatole che una volta accese devono funzionare per sempre
  • tu sai mandare una mail con Outlook Express e scrivere un documento con Microsoft Word, così facendo puoi essere classificato come responsabile informatico del cliente %xxYY%
  • tutti gli informatici rubano soldi e fanno la cresta su qualsiasi cosa, bella la vita eh?

e invece no, cacchio!

Il vero tecnico informatico, il vero sistemista, il vero project manager sono persone ben lontane da quanto elencato. Sono professionisti che si fanno il culo a striscie per ore e ore affinché tutto vada nel verso giusto, soprattutto di questi tempi dove l’informatica è dappertutto, anche nel negozio che vende salumi all’angolo della propria strada. Il mondo gira grazie a comunicazioni sempre più veloci, sempre più telematizzate, non è possibile tornare indietro, si chiama progresso … ed in quanto tale si può solo correre e cercare di stare al passo per non essere messi da parte.

Il tecnico informatico non è un comunista mangia bambini, grasso, puzzolente e fancazzista come l’immaginario qualunquista vuole far credere nella maggior parte dei casi. Quello che svolge davvero questo mestiere per passione e profonde conoscenze delle piattaforme utilizzate porta quotidianamente a termine un grande lavoro, parecchio stancante a livello mentale, certamente più riposante a livello fisico nonostante questa condizione non sia sempre veritiera. La sera torniamo anche noi con il mal di schiena a casa, magari aggiungete ul mal di testa, muscoli indolenziti per aver tirato su dei server o delle stampanti che pesano 50 e più KG oppure semplicemente spossati per aver maturato 600+ KM al volante nell’arco di 12 ore per raggiungere un cliente Ravenna / Milano (prendendo il mio caso). Il lavoro non è affatto semplice quando non si tratta di aprire il negozietto dello smanettone che magari disastra più di quello che un utente già sa fare a meraviglia…

La goccia che fa traboccare il vaso fino a farlo cadere? Sentirsi dire che 1000 euro sono rubati per questo mestiere, che tutti sarebbero in grado di farlo con un computer sotto mano. Avete mai provato a fare due conti con carta e panna alla mano? Chi prende 1000 euro puliti al mese ma deve pagarne 500+ di mutuo aggiungendo bollette e spesa settimanale per la sopravvivenza quotidiana fa fatica a tirare avanti, soprattutto se ci sono figli o spese impreviste di mezzo.

Ecco perché vedere una faccia alterata dopo la frase “beh se mi dai anche cento euro in più rispetto alla mia attuale azienda io passo da tefa davvero incazzare (esperienza realmente accaduta ieri sera ad un collega di lavoro). Poi magari non ci si meraviglia troppo per i 93 milioni di euro spesi per un pirla che corre dietro ad un pallone, giusto Cristiano?

D’altronde c’è sempre di mezzo il detto “ad ognuno il suo“, vero? Ecco bene, allora il problema risolvitelo da solo genio che non sei altro visto che il mio mestiere lo sanno fare proprio tutti, magari ci sentiamo quando ti si spacca qualcosa che non hai messo in piedi decentemente :)

Cheers.

lo sfogo non è rivolto a nessuno in particolare. E’ un malumore generico che si può ampiamente riscontrare nel nostro ambiente, basta chiedere in giro. Se vi sentite coinvolti direttamente perché qualche volta avete trattato male “quello sfigato del CED” magari provate ad alzare la cornetta e chiamare anche solo per invitarlo a bere un caffè. Sarebbe già un discreto passo in avanti …

Page 24 of 25« First...«2122232425»