CentOS: accedere alle partizioni NTFS

Capita a volte di dover accedere a partizioni Windows (NTFS) da Linux ma non tutte le distribuzioni supportano nativamente la lettura/scrittura di queste partizioni. CentOS in particolare non ha il supporto a queste partizioni ne dentro il kernel ne dentro il repository ufficiale.

E’ comunque possibile accedere alle partizioni di Windows mediante il pacchetto fuse disponibile sul repository di rpmforge. Per maggiori informazioni su come aggiungere ed abilitare un repository aggiuntivo per CentOS, potete consultare questo link:

http://www.morzello.com/dblog/articolo.asp?articolo=68

Nell’esempio che segue, vedremo come montare una partizione ntfs in una cartella di linux come ad esempio /mnt/usb.

Per prima cosa, verifichiamo la tavola delle partizioni del disco. Nel nostro caso si tratta di un disco usb esterno:

fdisk -l /dev/sdb

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       15298   122881153+   6  FAT16
/dev/sdb2           15299       22947    61440592+   7  HPFS/NTFS

Nel caso volessimo montare la seconda partizione senza supporto, riceveremmo un messaggio simile a questo:

mount /dev/sdb2 /mnt/usb
mount: unknown filesystem type 'ntfs'

Per risolvere il problema procediamo dunque all’installazione dei pacchetti necessari dal repository di rpmforge:

yum install fuse fuse-ntfs-3g
Loaded plugins: fastestmirror, priorities
Determining fastest mirrors
 * addons: ftp.uni-bayreuth.de
 * base: ftp.uni-bayreuth.de
 * extras: ftp.uni-bayreuth.de
 * rpmforge: apt.sw.be
 * updates: ftp.hosteurope.de
addons                                                   |  951 B     00:00
base                                                     | 2.1 kB     00:00
extras                                                   | 2.1 kB     00:00
rpmforge                                                 | 1.1 kB     00:00
updates                                                  | 1.9 kB     00:00
updates/primary_db                                       | 554 kB     00:00
478 packages excluded due to repository priority protections
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package fuse.i386 0:2.7.4-8.el5 set to be updated
---> Package fuse-ntfs-3g.i386 0:2009.11.14-1.el5.rf set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch       Version                     Repository      Size
================================================================================
Installing:
 fuse               i386       2.7.4-8.el5                 base            83 k
 fuse-ntfs-3g       i386       2009.11.14-1.el5.rf         rpmforge       552 k

Transaction Summary
================================================================================
Install      2 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 635 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): fuse-2.7.4-8.el5.i386.rpm                              |  83 kB     00:00
(2/2): fuse-ntfs-3g-2009.11.14-1.el5.rf.i386.rpm              | 552 kB     00:00
--------------------------------------------------------------------------------
Total                                                352 kB/s | 635 kB     00:01
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : fuse                                                      1/2
  Installing     : fuse-ntfs-3g                                              2/2

Installed:
  fuse.i386 0:2.7.4-8.el5
  fuse-ntfs-3g.i386 0:2009.11.14-1.el5.rf

Complete!

Ora è possibile ripetere il comando mount come mostrato in precedenza.

Alla prossima.

Usare Ping In Script Batch

Tempo fa avevo presentato un articolo che mostra come utilizzare il comando ping all’interno di un batch script:

http://www.morzello.com/dblog/articolo.asp?articolo=41

Come spiegato, il comando restituisce sempre lo stesso errorlevel, rendendo vano un eventuale tentativo di capire se il ping è andato a buon fine o meno all’interno di uno script.

Oggi presento una variante che consente di ottenere lo stesso risultato senza dover scrivere codice vbscript.

Di seguito trovate un piccolo file .BAT (o .CMD) che potete utilizzare per testare l’esito di un ping:

ping nomeserver | findstr "TTL="
echo %errorlevel%

Mentre il comando ping restituisce sempre lo stesso errorlevel, findstr discrimina l’uscita a seconda che nell’output esista o meno una corrispondenza utile. A questo punto possiamo testare l’uscita del comando findstr invece che di ping.

Alla prossima.

Resize di partizioni LVM

Mi è capitato di recente, di dover migrare un piccolo server Linux su un server ESXi 4. La memoria ram della versione virtualizzata è stata espansa di 512 MB rendendo necessario una espansione della partizione di swap. Come accade per diverse distribuzioni che utilizzano LVM per gestire il file system (CentOS, Fedora,…) per variare le dimensioni di una partizione (resizing) bisogna tenere in considerazione alcuni fattori critici come ad esempio il rischio di perdere dati importanti presenti sul disco.

L’esempio che segue mostra come ridurre la partizione LVM destinata al sistema operativo al fine di estenderne quella di swap. I comandi elencati però possono essere utilizzati ovunque sia necessario fare il resize di partizioni LVM.

Individuare e gestire le partizioni LVM
Nel caso in cui il sistema operativo sia stato installato come consigliato dalla distribuzione, allora i volumi logici presenti sul disco conterranno l’intera distribuzione ad esclusione della partizione di boot. Questo vuol dire che per accedere al disco per fare le opportune modifiche è necessario accedervi dall’esterno. Per fare questo è sufficiente fare il boot da chiavetta usb o da distribuzione live.

A me piace tanto Fedora, di conseguenza, per questo esempio, prenderò in considerazione il cd live di Fedora, disponibile sul sito:

http://fedoraproject.org/get-fedora

Una volta fatto il boot da cdrom avremo la possibilità di verificare l’esistenza di partizioni LVM sul disco fisso. Basta aprire una finestra terminale ed impartire i seguenti comandi con credenziali di root:

[root@localhost liveuser]# su
[root@localhost liveuser]# pvscan
  PV /dev/sda2   VG VolGroup01   lvm2 [79.88 GB / 0    free]
  Total: 1 [79.88 GB] / in use: 1 [79.88 GB] / in no VG: 0 [0   ]

[root@localhost liveuser]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup01" using metadata type lvm2

[root@localhost liveuser]# lvscan
  ACTIVE            '/dev/VolGroup01/LogVol00' [78.88 GB] inherit
  ACTIVE            '/dev/VolGroup01/LogVol01' [1.00 GB] inherit

Si tratta di un disco da 80 GB  (sda) con due partizioni fisiche: sda1 per il boot ed sda2 per LVM.
Dai comandi impartiti si evince che il dispositivo /dev/sda2 contiene un gruppo logico (VolGroup01) con due partizioni (LogVol00 per il sistema operativo e LogVol01 per lo swap).

Prima di procedere con il resize delle partizioni logiche bisogna essere certi che non vi siano dati nella parte finale del primo volume (LogVol00) altrimenti questi saranno irrimediabilmente persi. Questa considerazione va fatta dal momento che per aggiungere un numero variabile di byte alla partizione di swap, bisogna prima sottrarli a quella del sistema operativo. Ovvio che se la partizione del SO è piena, il resize non sarà possibile.

Il resize delle partizioni logiche
Poichè LogVol00 è di tipo ext3, possiamo deframmentare l’unità in modo da lasciare libero lo spazio in coda (shrinking):

[root@localhost liveuser]# e2fsck -f /dev/VolGroup01/LogVol00
e2fsck 1.41.9 (22-Aug-2009)
Adding dirhash hint to filesystem.

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

/dev/VolGroup01/LogVol00: ***** FILE SYSTEM WAS MODIFIED *****
/dev/VolGroup01/LogVol00: 107628/20676608 files (1.3% non-contiguous), 1409699/20676608 blocks

Fatto questo procediamo con il resize della partizione ext3

[root@localhost liveuser]# resize2fs /dev/VolGroup01/LogVol00 77880M
resize2fs 1.41.9 (22-Aug-2009)
Resizing the filesystem on /dev/VolGroup01/LogVol00 to 19937280 (4k) blocks.
The filesystem on /dev/VolGroup01/LogVol00 is now 19937280 blocks long.

Con il comando precedente abbiamo tolto alla partizione 1 G definendo le nuove dimensioni (77880M)

Adesso finalmente possiamo contrarre la partizione logica del primo volume ed estendere la seconda:

[root@localhost liveuser]# lvresize /dev/VolGroup01/LogVol00 --size -1G
  WARNING: Reducing active logical volume to 77.88 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol00? [y/n]: y
  Reducing logical volume LogVol00 to 77.88 GB
  Logical volume LogVol00 successfully resized

[root@localhost liveuser]# lvresize /dev/VolGroup01/LogVol01 --size +1G
  Extending logical volume LogVol01 to 2.00 GB
  Logical volume LogVol01 successfully resized

In questo caso abbiamo utilizzato valori relativi (-/+1 G)

Per finire, possiamo procedere con la formattazione della nuova partizione di swap

[root@localhost ~]# mkswap /dev/VolGroup01/LogVol01
Setting up swapspace version 1, size = 2147479 kB

Dopo un reboot tutto è pronto.
Alla prossima.

Repository aggiuntivi in CentOS e Fedora

Come tutte le grandi distribuzioni open source, sia CentOS che Fedora godono di un ampio repository ed offrono supporto ad una vasta gamma di programmi.

Non tutte le applicazioni però sono disponibili all’interno della distribuzione e di conseguenza nel repository ufficiale.

Repository non ufficiali possono essere utilizzati come valida alternativa alla compilazione dei sorgenti.

Bisogna però fare attenzione perché utilizzare repository sconosciuti potrebbe compromettere il sistema operativo, sia dal punto di vista della sicurezza che da quello della stabilità.

In questo articolo spiegheremo brevemente come accedere a repository non ufficiali tramite yum.

La priorità dei repository
Quando si ha a che fare con più repository esiste un concetto di priorità che bisogna tenere in considerazione altrimenti si rischia di fare l’aggiornamento dei pacchetti di base su un repository non ufficiale come ad esempio quello di test.

Yum consente di priorizzare i repository in base alle proprie esigenze mediante un apposito plugin che può essere installato con il seguente comando:

yum install yum-priorities

Per consentire l’uso dei plugin in yum è necessario modificare il file /etc/yum.conf:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

aggiungendo eventualmente la riga “plugins=1″

Un seconda abilitazione deve essere fatta per ogni singolo plugin installato. Nel nostro caso quindi bisogna modificare il file /etc/yum/pluginconf.d/priorities.conf impostando il parametro enabled:

[main]
enabled = 1

Una volta abilitato il plugin è possibile gestire la priorita di ogni repository aggiungendo il parametro priority=N in nel relativo file di configurazione. N è un numero che va da 1 a 99 ed esprime una gerarchia. A valori di N più elevati corrispondono repository con priorità più bassa.

Nella cartella /etc/yum.repos.d sono presenti i files relativi ai singoli repository. L’esempio seguente si riferisce al file /etc/yum.repos.d/CentOS-Base.repo:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=2

Da notare come i repository di base abbiano tutti priorità 1.

Importare il repository di rpmforge
Prima di importare un nuovo repository è bene verificarne l’autenticità. Ogni repository inoltre dovrebbe essere dotato di una chiave GPG che consenta a yum di verificare la provenienza dei pacchetti.

Nell’esempio che segue, aggiungeremo una chiave valida per rpmforge:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

Anche se può sembrare strano, è necessario importare la chiave prima del repository stesso altrimenti yum non sarà in grado di certificarne l’installazione.

Prima di installare il repository bisogna identificare l’architettura hardware che si intende utilizzare (ad esempio i386 oppure x86_64). Fare uqesta sceltà è necessaria perché ogni architettura ha un percorso diverso. Per capire con ragionevole certezza quale sia l’architettura corretta è sufficiente impartire il seguente comando:

uname -i

A questo punto possiamo scegliere tra:

dopo aver scaricato il pacchetto procediamo con la verifica:

wget http://apt.sw.be/redhat/el5/en/$(uname -i)/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.$(uname -i).rpm
rpm -K rpmforge-release-0.3.6-1.el5.rf.*.rpm

Con una risposta simile a:

rpmforge-release-0.3.6-1.el5.rf.i386.rpm: (sha1) dsa sha1 md5 gpg OK

Ora possiamo procedere con l’installazione:

rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm

Infine aggiungiamo una priorità più alta per questo repository:

echo "priority = 5" >> /etc/yum.repos.d/rpmforge.repo

Installare repository di test
Possiamo fare lo stesso discorso con i repository di test. L’esempio che segue si applica a CentOS 5:

cd /etc/yum.repos.d
wget http://dev.centos.org/centos/5/CentOS-Testing.repo

Dando un’occhiata al file noterete che il repository è disabilitato. Questo è molto importante perché in genere i repository di test sono molto instabili ed il loro uso potrebbe essere causa di instabilità in ambienti di produzione.

Quando si intende usare un repository disabilitato è possibile eseguire yum con il parametro –enablerepo=REPO dove REPO è il nome del repository. Ad esempio:

yum --enablerepo=c5-testing install pacchetto

Altro sui repository
A fronte di più repository, quando si esegue yum per un aggiornamento del sistema si noterà certamente l’esclusione di alcuni pacchetti:

yum update

Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
 * addons: centos.bio.lmu.de
 * base: ftp.halifax.rwth-aachen.de
 * extras: centos.bio.lmu.de
 * rpmforge: fr2.rpmfind.net
 * updates: mirror.avalonsys.eu
478 packages excluded due to repository priority protections
Setting up Update Process
No Packages marked for Update

Alcuni pacchetti marcati come da aggiornare non saranno scartati se sono marcati come da non aggiornare in un repository con priorità più bassa. Per verificare quali pacchetti sono stati esclusi è possibile usare il parametro –d3:

yum -d3 update
Loaded plugins: fastestmirror, priorities
Config time: 0.136
Yum Version: 3.2.22
Setting up Package Sacks
Loading mirror speeds from cached hostfile
 * addons: mirror.silyus.net
 * base: ftp.halifax.rwth-aachen.de
 * extras: mirror.silyus.net
 * rpmforge: fr2.rpmfind.net
 * updates: mirror.avalonsys.eu
 --> subversion-perl-1.6.3-0.1.el5.rf.i386 from rpmforge excluded (priority)
 --> php-pecl-memcache-2.1.2-1.el5.rf.i386 from rpmforge excluded (priority)
 --> perl-DBD-Pg-2.10.7-1.el5.rf.i386 from rpmforge excluded (priority)
 --> qemu-0.9.0-2.el5.rf.i386 from rpmforge excluded (priority)
 --> subversion-perl-1.3.2-0.2.el5.rf.i386 from rpmforge excluded (priority)
 --> fuse-2.7.4-1.el5.rf.i386 from rpmforge excluded (priority)
 --> lftp-3.5.11-1.el5.rf.i386 from rpmforge excluded (priority)
...

Alla prossima.

Configurare il layout di default durante il logon (Windows)

Avete installato una versione inglese di windows e durante il logon non riuscite ad inserire la password correttamente perchè i caratteri speciali non corrispondono a quelli indicati sulla tastiera?

Secondo Microsoft è sufficiente indicare le impostazioni internazionali di default tramite l’icona “regional Settings” (Impostazioni Internazionali) presente nel pannello di controllo:

Per quanto riguarda il logon questo non basta.

La soluzione che vi propongo consiste nel mettere mano al file di registro.

Windows Registry Editor Version 5.00
[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
"1"="00000410"
"2"="00000409"

Basta copiare ed incollare le righe seguenti in un file di testo con estensione “.reg” e successivamente importarlo nel file di registro cliccando due volte sul file:

In questo modo la tastiera italiana (cod 410) verrà caricata al posto di quella inglese (cod 409).

Un elenco completo delle lingue supportate è disponibile sempre nel file di registro ma ad un indirizzo diverso:

HKLM\SYSTEM\CurrentControlSet\Control\KeyboardLayout\DosKeybCodes

Per comodità riporto i codici nella tabella seguente.

00000402 Bulgarian
0000041a Croatian
00000405 Czech
00000406 Danish
00000413 Dutch (Standard)
00000813 Dutch (Belgian)
00000c09 English (Australian)
00001009 English (Canadian)
00001809 English (Irish)
00000409 English (United States)
00000809 English (United Kingdom)
00001409 English (New Zealand)
0000040b Finnish
0000040c French (Standard)
0000080c French (Belgian)
0000100c French (Swiss)
00000c0c French (Canadian)
00000407 German (Standard)
00000807 German (Swiss)
00000c07 German (Austrian)
00000408 Greek
0000040e Hungarian
0000040f Icelandic
00000410 Italian (Standard)
00000810 Italian (Swiss)
00000414 Norwegian (Bokmal)
00000814 Norwegian (Nynorsk)
00000415 Polish
00000816 Portuguese (Standard)
00000416 Portuguese (Brazilian)
00000418 Romanian
00000419 Russian
0000041b Slovak
00000424 Slovenian
0000080a Spanish (Mexican)
0000040a Spanish (Traditional Sort)
00000c0a Spanish (Modern Sort)
0000041d Swedish
0000041f Turkish

Alla prossima

Ternimal Server e l’errore: “il dominio specificato non esiste…”

“The specified domain either does not exist or could not be contacted” è un errore che è possibile riscontrare quando si tenta un logon con utenza di dominio in terminal server (remote desktop). Capita quando ad esempio la macchina a cui si tenta di fare l’accesso è momentaneamente scollegata dal dominio ovvero quando il dominio non è raggiungibile.

Di solito questo problema viene risolto ripristinando la connessione con il domain controller. Ci sono dei casi in cui la connessione manca per motivi non legati alla funzionalità del server. Poniamo ad esempio il caso in cui volessimo accedere ad un portatile aziendale situato temporaneamente fuori dalla rete aziendale.

Per utilizzare le credenziali presenti sulla macchina evitando l’interruzione della connessione in caso di mancanza del domain controller è possibile mettere mano al file di registro con credenziali amministrative.

E’ sufficiente creare un file di testo con estensione “.reg” e inserire il seguente contenuto:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"IgnoreRegUserConfigErrors"=dword:00000001



Basta poi cliccare due volte sul file per inserire i dati nel registro di sistema.

Alla prossima.

Gestire le cartelle della tombola in Excel

Certo che per inserire questo articolo nella sezione dell’Office Automation ci vuole coraggio ma in fin dei conti si tratta sempre di Excel.
In queste vacanze ho giocato a tombola con la mia famiglia; ovviamente non ho vinto nulla ma mi sono divertito ugualmente. Un geek malato di informatica come me non poteva escludere il computer in una occasione come questa.
Ovviamente al posto di usare le lenticchie, le bucce d’arancia o altri segnaposto per tenere traccia dei numeri estratti ho decisao di usare un foglio di calcolo.
Per dirla tutta ho usato OpenOffice ma la sostanza non cambia dal momento che ho fatto uso delle formule standard.

In pratica sono bastati un paio di cerca.vert per tenere traccia dei numeri estratti e delle eventuali vincite.


Per chi fosse interessato, alla fine di questo articolo è possibile scaricare sia la versione xls che ods.

Il file si compone di tre fogli:

  • Estrazioni – E’ una sorta di deshboard in cui visualizzare lo stato delle cartelle ed i numeri che di volta in volta vengono estratti. Man mano che si procede con l’estrazione è possibile vedere cosa succede su ogni cartella: dall’ambo alla tombola;
  • Cartelle – Contiene i dati relativi a tutte le cartelle possedute. In particolare contiene i numeri così come sono riportate sulla cartella originale. E’ qui che l’utente deve inserire i numeri appartenenti alle cartelle in tre righe da cinque collonne ciascuna;
  • Vincita – Contiene un pannello che consente di calcolare facilmente le quote da assegnare alla tombola, alla cinquina e così via fino all’ambo. Il calcolo tiene conto del costo di ogni singola cartella e del numero di cartelle assegnate (comprensive delle sei cartelle che costituiscono il tabellone);

Si tratta di certo di un prodotto migliorabile ma sinceramente io non sono andato oltre dal momento che si tratta di un lavoro svolto in mezz’ora durante le vacanze di natale.

per scaricare il file cliccate qui.

alla prossima.

Windows – Visualizzare la linguetta protezione per i files

Quando si acquista una licenza di Windows nella versione Home, la linguetta riguardante la protezione dei files accessibile per mezzo del menù proprietà risulta essere disabilitato.

In realtà, la protezione dei files viene gestita in autonomia dal sistema operativo a meno di non usare un file system di tipo FAT32.

A volte però questa scelta può essere un limite.

Per abilitare la linguetta per singolo utente è sufficiente modificare il file di registro:

Hive: HKEY_CURRENT_USER
Key: Software\Microsoft\windows\CurrentVersion\Policies\Explorer
Name: Nosecuritytab
Type: REG_DWORD
Value: 0

E’ possibile trovare manualmente la chiave ed impostare il valore a 0 oppure eliminarla.

Ricordate che la linguetta si applica solo a file sytem di tipo NTFS.

Sono io oppure il sito è proprio giù?

Ieri mi è capitato di impazzire nel tentativo di capire se il sito di Google fosse giù o se più semplicemente era la mia connessione ad avere problemi.

Poi ho trovato un modo semplice e veloce di fare una verifica.

In pratica ho demandato ad un sito posto dall’altro capo del mondo di fare una richiesta al server da parte mia. Si tratta di un metodo alternativo all’uso di ping e traceroute vari dal momento che non fa uso di traffico icmp.

Per chi volesse fare un giro sul sito in questione, di seguito troverà il link:

http://downforeveryoneorjustme.com/

Per chi volesse testare direttamente la destinazione dall’url può digiare il link nel formato:

http://downforeveryoneorjustme.com/nomesito dove per nomesito si intende il nome dell’host.

Per Google ad esempio potreste scrivere:

http://downforeveryoneorjustme.com/www.google.com

Alla prossima.

Excel – una funzione per i colori delle celle

Vi è mai capitato di dover ordinare o filtrare una lista in excel in base al colore delle celle?

Qualche giorno fa ho fornito ad un cliente una lista chiedendo di indicare le voci superflue.

Quando ho ricevuto la lista rielaborata, mi sono accorto che il cliente aveva usato due colori per discriminare gli elementi: il giallo ed il rosso.

Ma come fare a filtrare gli elementi in base al colore?

Visto che le formule non mi sono state di grande aiuto, ho deciso di scriverne una io.

Di seguito presento una funzione in grado di restituire il colore di una cella (o range di celle). Il colore può essere riferito allo sfondo (motivo) oppure al tratto (foreground).

La funzione dovrebbe restituire (dico dovrebbe perché non ne sono sicuro) un valore a 24 bit rappresentante la codifica del colore (8x8x8)

L’importante però è avere un valori diversi per colori diversi.

Public Function Colore(r As Range, Tipo As String) As Long
    Select Case UCase(Tipo)
        Case "MOTIVO"
            Colore = r.Interior.Color

         Case "TRATTO"
            Colore = r.Font.Color

         Case Else
            Colore = -1
    End Select
End Function

Per ottenere il valore relativo al tratto possiamo usare ad esempio la formula:

=colore(A1;"tratto")

Mentre per lo sfondo possiamo usare ad esempio la formula:

=colore(A1;"motivo")


Per comodità al fondo di questo articolo ho inserito una add-in excel (formato xla) contenente la funzione.

Scarica l’add-in

Alla prossima.