Chi ha una rete di PC, casalinga o aziendale che sia, ha sicuramente provato più di una volta la seccatura di dover alzarsi e andare in un'altra stanza ad accendere un PC per prelevare qualche file via rete. Quando questa esigenza/seccatura diventa frequente, si pagherebbe pur di aver un sistema per accendere i PC "a comando", standosene seduti.
Ebbene, tale sistema c'è, ed è anche piuttosto semplice ed esiste da molti anni. Molti ne hanno sentito parlare, ma tanti non lo sanno usare o pensano che servano complicati software o attrezzature. In realtà tale sistema, che si chiama WOL o Wake-on-LAN, è veramente semplice da configurare e da usare.
Vediamo prima i requisiti necessari.
La scheda di rete deve essere compatibile con lo standard WOL. La maggior parte lo sono, solo alcune delle più economiche non hanno questa funzionalità. Se è compatibile, avrà una presa a tre connettori chiamata WOL. Questa, tramite il cavetto che dovrebbe essere fornito, va collegata all'analoga presa WOL sulla scheda madre. Anche la scheda madre deve essere compatibile con il WOL; anche qui, la maggior parte lo sono.
Dopo aver collegato il cavetto per il WOL dalla scheda di rete alla scheda madre, bisogna accendere il PC ed entrare nel BIOS. Qui bisogna abilitare la funzionalità WOL della scheda madre, con una voce che in genere è nel menù Power Manager o simili. Consultare il manuale della propria scheda madre per i dettagli specifici.
Nel caso in cui la scheda di rete sia integrata nella scheda madre, non serve ovviamente fare nessun collegamento, basterà da BIOS abilitare la scheda di rete e poi abilitare la funzionalità WOL.
In ogni caso, sia la scheda madre che l'alimentatore del PC devono essere in standard ATX e non AT, per garantire un minimo di alimentazione alla scheda di rete anche quando il PC è spento (ma non scollegato dalla rete elettrica!).
La parte di configurazione è così terminata. Ora passiamo alla parte software.
Bisogna prima di tutto procurarsi una delle varie utility che permettono di eseguire il Wake-on-LAN. Ce ne sono diverse, in genere gratuite, sia utilizzabili da riga di comando sia da interfaccia grafica. In questa breve guida prendiamo in considerazione quelle da riga di comando, per la loro semplicità.
Una comoda e semplicissima utility è MC-WOL, che si può scaricare da questa pagina. Nella stessa pagina c'è il download dell'utility complementare MCGETMAC, che tornerà utile.
Scarichiamo le due utility e salviamole (sono due eseguibili .exe) in una cartella a piacimento, ad esempio possiamo creare la cartella "WOL" in "C:\PROGRAMMI\".
A questo punto, ci servono dei dati per operare. Il Wake-on-LAN funziona cosè: l'utility crea uno speciale pacchetto di rete chiamato Magic Packet che verrà inviato alla scheda di rete del PC da accendere. Questa riconoscerà il pacchetto speciale ed invierà (tramite il cavetto menzionato) alla scheda madre il segnale di accendersi.
Manca un dettaglio, come specificare quale PC vogliamo accendere? Serve l'indirizzo MAC, detto anche indirizzo fisico, della scheda di rete del PC da accendere. Il MAC non è l'indirizzo IP, che è variabile dall'utente a piacere. Il MAC è un indirizzo fisso registrato nella scheda di rete, ed è univoco per ogni scheda di rete. Non esistono (o non dovrebbero esistere) in tutto il mondo due schede di rete con lo stesso indirizzo MAC.
Come facciamo a scoprire l'indirizzo MAC della scheda di rete di un PC? Ci sono diversi metodi, ma il più pratico in questo frangente è utilizzare l'utility MCGETMAC.EXE appena scaricata. Basta aprire una finestra DOS (Avvio -> Esegui -> digitare cmd o command), spostarsi nella cartella dove abbiamo salvato le utility scaricate, e scrivere MCGETMAC seguita dall'indirizzo IP del computer da "individuare", o eventualmente il suo nome di rete. Ad esempio :
MCGETMAC 192.168.0.38
oppure
MCGETMAC PippoPC
e l'utility ci svelerà il suo MAC address. Nota: si usa da un PC per scoprire il MAC di un altro PC, che dev'essere anch'esso acceso!.
Il MAC è una sequenza di cifre esadecimali separate da due punti. Annotarselo e ripetere il procedimento per tutti i PC che ci interessano.
Ora, per accendere un PC spento, basta utilizzare il programma MC-WOL scaricato all'inizio, ancora da una finestra DOS, seguito dall'indirizzo MAC, ad esempio si digita:
MC-WOL 00:00:00:20:2c:f7
(maiuscole e minuscole sono qui indifferenti)
Il gioco è fatto! Ogni volta che ci serve un PC acceso, digitiamo il comando con l'indirizzo MAC del PC e dopo alcuni secondi (il tempo che Windows parta) il PC è disponibile per accedervi via rete, copiare files, utilizzarlo con VNC, e via dicendo.
Ora vediamo come rendere più semplice l'utilizzo. In Windows, con Risorse del Computer spostiamoci nella cartella dove abbiamo salvato i due programmi eseguibili. Clicchiamo con il tasto destro del mouse e scegliamo Nuovo -> Collegamento. Mettiamo il percorso del file MC-WOL.EXE, quindi diamo il nome che vegliamo al collegamento (ad esempio "Accendi_PippoPC").
Dopo che il collegamento è stato creato, facciamoci click destro e scegliamo Proprietà. Nella casella Collegamento -> Destinazione troviamo il percorso completo del comando, ad esempio "C:\Programmi\WOL\MC-WOL.EXE". Ora aggiungiamo anche il MAC address di PippoPC (o del PC da "svegliare"), in modo da avere nella casella Destinazione qualcosa di simile a questo:
C:\Programmi\WOL\MC-WOL.EXE 00:00:00:20:2c:f7
Clicchiamo su OK, a questo punto il nostro collegamento è pronto per essere utilizzato. Spegniamo il computer da provare ad accendere, quindi facciamo doppio click sul collegamento e come per magia il PC dovrebbe avviarsi.
Possiamo creare altri collegamenti, uno per ogni PC che ci possa servire accendere, così alla bisogna basterà fare doppio click sul collegamento giusto per accendere uno qualsiasi dei nostri PC.
Se il collegamento non accende il PC, provare ad accenderlo da riga di comando in una finestra DOS, come spiegato più sopra. Se da riga di comando funziona, significa che abbiamo scritto qualcosa di sbagliato nella casella Destinazione del collegamento, correggiamolo. Se nemmeno da riga di comando funziona, e siamo sicuri che il MAC address è giusto e scritto correttamente, allora forse manca qualcuno dei requisiti indicati all'inizio dell'articolo.
Ciao a tutti da alcuni giorni mi sono cementato nel fantastico mondo del codice binario e ho scoperto delle cose molto interessanti, perciò ho voluto scrivervi un articolo su di esso.
Il codice binario è un algoritmo di ricerca che consente di velocizzare notevolmente i ritrovamento degli oggetti.
La ricerca binaria a sua volta è una tecnica di individuazione di elementi di una lista ordinata, capace di fare molto meglio di una normale ricerca lineare (Es. scorro il file finchè non lo trovo). E' requisito essenziale che la lista sia ordinata.
Il tempo medio di una ricerca lineare, dal primo all'ultimo elemento, è pari al tempo necessario per esaminare metà degli elementi nella lista.
La ricerca binaria puo fare assai meglio e prende il suo nome dal fatto che lo spazio da ricercare viene progressivamente dimezzato e continua a restringersi molto piu velocemente che in una ricerca lineare fino a quando non si arriva a bersaglio.
:: Divide et impera (scusate se il mio latino non è dei migliori) ::
(In latino dividi e comanda). Ecco come funziona un algoritmo di ricerca binaria:
1.Ci si posiziona a metà della lista (che ricordo per l'ultima volta deve essere ordinata)
2.Confrontiamo la chiave di ricerca con l'elemento presente in quella posizione.
3.Se coincidono abbiamo finito!
4.Se la chiave di ricerca ha valore inferiore a quello dell'elemento su cui ci troviamo, vuol dire che l'elemento ricercato, se è presente, sta nella metà inferiore della lista; spezziamo la lista in 2 e ripartiamo dal passo 1, considerando solo la metà inferiore della lista.
5.Analogamente, se la chiave di ricerca ha valore maggiore, spezziamo la lista in 2 e ripartiamo dal passo 1, solo però considerando la metà superiore della lista.
Un esempio concreto. Vogliamo la lettera K nella lista ADFHIKLMP (si, noi la vediamo subito, ma il computer no!).
Confrontiamo la chiave di ricerca (la lettera K) con la posizione di metà della lista, che è la lettera I:
(Ecco un'immagine fatta da me in ASCII)
----------------------
| 0 1 2 3 *4* 5 6 7 8 |
| A D F H *I* K L M P |
----------------------
K ha un valore mggiore di I. Quindi spezziamo la lista in 2 e ripartiamo considerando la metà superiore della lista. Contrariamente al senso comune, la metà superiore della lista è quella dove i valori sono maggiori e quindi è la 2 metà della lista, non l'inizio come lo vediamo noi.
Quindi:
----------------------------
| 0 1 2 3 4 5 6 7 8 |
| +---------+ |
| A D F H I |K L M P| |
| +---------+ |
----------------------------
Questa metà della lista è composta da un numero pari di elementi. Come facciamo a poszionarci esattamente in mezzo? Non è un problema. Se la lista è pari possiamo scegliere arbitrariamente di posizionarci mezzo passo prima o mezzo passo dopo e cioè, nel nostro esempio, su L o su M. Diciamo L:
----------------------------
| 0 1 2 3 4 5 6 7 8 |
| +----------+|
| A D F H I |K *L* M P||
| +----------+|
----------------------------
K ha un valore minore di L. Dividiamo in 2 la lista e partiamo dalla metà inferiore. Questa metà è composta da un solo elemento, la lettera K. Coincide con la chiave di ricerca K. Abbiamo trovato. Ci abbiamo messo 3 tentativi. Con la ricerca lineare, partendo dalla A e proseguendo, ce ne avremmo messi 6. Certo, se avessimo dovuto cercare la lettera A con una ricerca lineare, ci avremmo messo un solo tentativo, contro "quanti" su una ricerca binaria.
Ma la ricerca lineare da buoni risultati solo in casi particolari. Mediamente, la ricera binaria è superiore e lo diventa sempre piu con l'aumentare della lunghezza della lista.

