Archives For Windows

Ho aggiornato Skype sulle mie macchine portandolo all’ultima versione rilasciata: la 4.1.0.141. Vi chiederete cosa ci sia da festeggiare immagino … giusto una cosa, per la quale ringrazio gli sviluppatori che tempo fa avevano deciso di far saltare alcune funzioni evidentemente considerate inutili o poco utilizzate.

In questa release è stata finalmente ripristinata la funzione “Invia contatti”!

Ne avevo parlato in un post dedicato circa 5 mesi fa:

gioxx.org/2009/02/20/skype-4-invia-contatti-sparito

e nonostante la mia domanda posta sul blog italiano non abbia ancora avuto risposta, sono davvero felice di veder ricomparire la tanto amata funzionalità parecchio sfruttata con l’account aziendale per passare utenza tra colleghi ;-)

Altro cambiamento –decisamente meno importante della funzionalità finalmente reintrodotta– è la grafica dell’applicativo, nella fattispecie la scelta di colori sensibilmente variata rispetto alla precedente versione GOLD, dal celeste “sciapo” stile Office 2007 al blu scuro più stile Windows XP (chissà come mai …).

Nel caso in cui l’aggiornamento non vi si proponga in modo automatico (succede spesso a dirla tutta) provate a forzare la richiesta dal menu Aiuto / Controlla aggiornamenti.

Colgo inoltre l’occasione per mettere in evidenza l’uscita della versione 2.8 per Mac e ricordarvi che –nel caso in cui necessitaste di aprire due sessioni di Skype separatequi c’è una veloce spiegazione che dovrebbe fare al caso vostro.

Cheers :-)

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 SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>dir *.sqlite
Il volume nell’unità C non ha etichetta.
Numero di serie del volume: XXXX-YYYY

Directory di C:Documents and SettingsGiovanniDati applicazioniMozillaFiref oxProfilesXXXX.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 SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.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 SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.default>mkdir backup_gioxx

C:Documents and SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.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 SettingsGiovanniDati applicazioniMozillaFirefoxProfilesXXXX.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 tantonon 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 :-)

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!

No, non lo faccio apposta a parlare di sistemi *VNC ultimamente, è che capitano problemi quotidianamente e uso (ormai dovreste saperlo) il blog come blocco appunti per avere dei promemoria sempre disponibili un domani, nel caso in cui dovessi dimenticarmi la soluzione ai problemi risolti e necessitassi di perdere poco tempo per cercarla nuovamente sulla rete :P

Problematica: su una macchina è stato disinstallato RealVNC4 (apparentemente in modo corretto) ed è ora presente un UltraVNC che non funziona affatto bene, questo perché collegandosi alla macchina dovrebbe richiedere le credenziali di dominio (autenticazione tramite MS-LOGON quindi) ma in realtà propone il solo campo password, chiaramente lasciando “spiazzato” chi si collega e non sa che password inserire.

Dopo qualche test ho scoperto l’arcano mistero, più semplice di quello che avevo inizialmente previsto ma infame al punto giusto da non venire in mente immediatamente …

Nonostante l’installazione di UltraVNC fosse stata fatta correttamente e fosse presente “uvnc_server” tra i servizi della macchina, RealVNC4 aveva “lasciato a marcire” il suo winvnc.exe che prevaleva sull’ultimo arrivato. Risultato? La password richiesta era quella impostata nel vecchio VNC. Ecco la schermata dei servizi:

clicca sull’immagine per ingrandire

Dopo aver disabilitato il servizio tutto è tornato alla normalità. Ecco perché ho prontamente cercato la sintassi per eliminare un servizio direttamente da DOS, questo è il documento:

theeldergeek.com/add_a_service_in_windows_xp.htm

e questo il risultato dalla finestra DOS chiaramente lanciata in modalità amministrativa:

Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>sc delete WinVNC4
[SC] DeleteService SUCCESS

C:\WINDOWS\system32>

Visibile anche a video dato che viene immediatamente dato errore sul servizio che si stava osservando:

clicca sull’immagine per ingrandire

Potete ora tornare al vostro lavoro senza imprecare ulteriormente, il problema è risolto e non necessita di alcun riavvio per permettervi il collegamento ad UltraVNC Server :-)

Cheers.

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 :)