mercoledì 23 dicembre 2009

Collegare due computer in rete tramite nfs (LINUX)

Finalmente sono riuscito a collegare i miei computer e trasferire velocissimamente file da un capo all'altro... ed adesso cercherò di spiegarvi come fare!

Molti consigliano di utilizzare samba (che non sono riuscito a capire come diamine si faccia a configurare...) ma a quanto pare se a noi interessa un collegamento eterogeneo tra macchine con os Gnu/Linux, basta semplicemente seguire queste due guide:

Impostare IP statico su Ubuntu
(Pimp my Linux)

Condividere cartelle
(Senbee)

Praticamente andremo a creare una cartella sul computer nel quale imposteremo il nostro ip fisso(tramite la prima guida)..
che condivideremo con tutti gli altri computer sulla rete...

Quindi per prima cosa scegliete il computer che ci farà da server ed impostare un ip fisso per quel computer. poi seguire la guida di Senbee.

Se farete tutto correttamente dopo aver riavviato entrami i computer sui client troverete la cartella che avete impostato con lo stesso contenuto di quella che avete nel server!

Spero di essere stato chiaro....
Per qualsiasi domanda chiedete pure!

domenica 29 novembre 2009

Google Car a Catania

Venerdì scorso è avvenuto il mio secondo incontro con una google car, la scorsa volta a parte il fatto che ero con il mio scooter e che sono rimasto imbambolato per lo stupore di vedere una google car a Comiso non mi è passato per la mente di immortalare quel momento!
Venerdì però ho avuto il tempo e la prontezza di tirare fuori il mio cellulare per documentare questa strana macchina fotografica(iihih)
Il modello è sempre lo stesso però questa volta l'ho vista rossa!
Da notare la targa straniera!



la foto l'ho scattata qui:
37.525521,15.079507 (coordinate del posto)

la cosa strana e che la via in cui l'ho incontrata è già "viewizzata" in fatti dopo essersi svincolata dal traffico ha subito svoltato a destra dopo qualche traversa! sicuramente anche sta volta non sono stato immortalato!
Prima o poi lo scoprirò!

giovedì 26 novembre 2009

Scacchi che passione!


Wow sento ancora l'adrenalina in giro per il corpo! Sono teso come una corda di violino...

Poco fa nella Carondina si è concluso la 4^ partita di scacchi della giornata. Era da tanto che non giocavo così, che non provavo quelle scariche di tensione che non puoi controllare e che ti fanno vibrare dalla punta delle dita dei piedi fino alla punte deicapelli....

Non ricordavo più cosa significava avere la pazienza di saper aspettare il momento giusto, osare sacrificare i tuoi pezzi e poi l'incredibile sensazione che si prova rilasciando in un istante tutta la tensione accumalta quando dopo un combattimento all'ultimo sangue pronunci "scacco matto!".
Forse la parte più bella è vedere il tuo avversario che ti guarda con un sorriso fatto solo per non darti la soddisfazione di non mostrarti che in realtà ti spezzerebbe in due molto volentieri

Gli scacchi sono un gioco fantastico! Non è un semplice gioco di logica, è anche e sopratutto una sfida psicologica contro il tuo avversario! Devi combattere contro il tuo corpo per tenerlo calmo e non mostrare la tensione che provi. Tra una mossa ed un altra spesso rimango imbambolato ad osservare l'avversario ed ogni suo minimo movimento , i tendini delle mani, l'espressione sul volto etc...

Ok per oggi mi fermo qui. Non credo di essere riuscito a trasmettervi quello che ho provato... forse semplicemente è impossibile!

In ogni caso eccovi l'esito delle partite di oggi!
Ho riaffrontato dopo un sacco di anni il mio caro coinquilino e storico avversario Roberth con cui ho frequentato un corso di scacchi in seconda media!(era d'allora che non lo sfidavo)

Infine ho giocato le ultime due partite contro Joao, l'altro mio coinquilino brasiliano, che nell'ultima partita mi ha dato del filo da torcere ma alla fine chi la dura la vince!

Ebbene signori e signore, l'esito è stato:
Corsair 2-0 Roberth
Corsair 2-0 Joao

niente male!

giovedì 12 novembre 2009

Simulazione lancio di un dado (java)

L'esercizio consiste nel simulare il lancio di un dado e nel produrre in output il numero dei lanci che sono stati necessari affinché esca la stessa faccia per 5 lanci consecutivi.

La simulazione del lancio,si ottiene utilizzando la classe Math.random(); che genera un numero casuale(se non ricordo male un double) compreso tra 0 ed 1. moltiplichiamo il valore per il numero delle possibilità che vogliamo ottenere(nel nostro caso il numero delle facce del dado, 6 in tutto)ed effettuiamo il casting ad "(int)" in modo tale da approssimare il valore ad un intero.
A questo punto i risultati saranno: 0 1 2 3 4 5
Siccome a noi interessano i valori da 1 a 6, sommiamo 1 al valore ottenuto.

per il resto il codice è il seguente:

  1. /*

  2. Questo programma simula il lancio di un dado e conta il numero delle estrazioni

  3. necessarie affinche' esca 5 volte lo stesso numero. Il risultato ovviamente varia di volta in volta!

  4. */

  5. public class Fiverand

  6. {

  7.     public static void main (String[] args)

  8.     {

  9.         int c = 0;

  10.         int temp = 0;

  11.         int n = 0;

  12.         do

  13.         {

  14.             c++;

  15.             int lancio = (int)((Math.random())*6+1);//lancio del dado

  16.                    

  17.             if (temp == lancio)//conteggio quante volte è uscito lo stesso numero

  18.             {

  19.                 n++;

  20.             }

  21.             else // azzero il conteggio

  22.             {

  23.                 n=1;

  24.                 temp = lancio;

  25.             }

  26.             System.out.println(c + " = " + lancio);// stampo il numero dell'estrazione ed il numero estratto

  27.         }

  28.         while (n!=5);   //il ciclo si ripete finchè il conteggio e' diverso da 5   

  29.            

  30.         System.out.println("Sono stati necessari " + c + " lanci del dado per ottenere 5 estrazioni consecutive di  un numero, ed il numero e' stato: "  + temp ); 

  31.     }

  32. }



esso produrrà in output tutte le estrazioni effettuate ed infine la stringa che ci indica il numero delle estrazioni avvenute ed il numero "fortunato"

Alla prossima!

Potete trovare tutti i miei programmi quì.

lunedì 9 novembre 2009

Ricorrenza della pasqua 2^ versione(Java)

Oggi vi propongo una versione modificata del codice postato ieri, ho eliminato qualche stringa di codice inutile per il calcolo che devo andare ad eseguire, ho modificato la formattazione dell'output ed infine ho inserito un ciclo che mi permette di calcolare la data di diversi anni che vanno da un anno x ad un anno y nel mio caso ho deciso di calcolare tutti i 916 anni che potevo calcolare con l'algoritmo precedente.

Ecco il codice:

  1. public class Pasqua916

  2. {

  3.     public static void main (String[] args)

  4.     {//algoritmo cristiano per il calcolo della pasqua secondo il calendario gregoriano(metodo aritmetico di Gauss) http://it.wikipedia.org/wiki/Calcolo_della_Pasqua#Metodo_aritmetico_di_Gauss

  5.         int y = 1583;//anno gregoriano compreso tra il 1583 ed il 2499

  6.         while (y != 2500)

  7.         {

  8.             int a = y%19;

  9.             int b = y%4;

  10.             int c = y%7;

  11.             int m = 0;

  12.             int n = 0;

  13.             // assegnazione m ed n in base al secolo di y

  14.             if (y>=1583 && y<=1699)

  15.             {

  16.                 m = 22;

  17.                 n = 2;

  18.             }

  19.             else if (y>=1700 && y<=1799)

  20.             {

  21.                 m = 23;

  22.                 n = 3;

  23.             }

  24.             else if (y>=1800 && y<=1899)

  25.             {

  26.                 m = 23;

  27.                 n = 4;

  28.             }

  29.             else if (y>=1900 && y<=2099)

  30.             {

  31.                 m = 24;

  32.                 n = 5;

  33.             }

  34.             else if (y>=2100 && y<=2199)

  35.             {

  36.                 m = 24;

  37.                 n = 6;

  38.             }

  39.             else if (y>=2200 && y<=2299)

  40.             {

  41.                 m = 25;

  42.                 n = 0;

  43.             }

  44.             else if (y>=2300 && y<=2399)

  45.             {

  46.                 m = 26;

  47.                 n = 1;

  48.             }

  49.             else if (y>=2400 && y<=2499)

  50.             {

  51.                 m = 25;

  52.                 n = 1;

  53.             }

  54.             //calcolo d ed e

  55.             int d = (19*a+ m)%30;      

  56.             int e = (2*b+4*c+6*d+ n)%7;

  57.             // calcolo del giorno

  58.             if (d+e<10)

  59.             {

  60.                 int marzo = d+e+22;//caso marzo

  61.                 System.out.println( y + " = " + marzo + "/03");

  62.             }

  63.             else

  64.             {

  65.                 int aprile = d+e-9;

  66.                 if (aprile == 26)//eccezione 1 aprile

  67.                     System.out.println(y + " = 19/04");

  68.                 else if (aprile == 25 && e==6 && a>10  )//eccezione 2 aprile

  69.                     System.out.println(y + " = 18/04");

  70.                 else// caso generico aprile

  71.                     System.out.println(y + " = " + aprile + "/04");

  72.             }

  73.             y++;

  74.         }

  75.     }

  76. }



Potete trovare tutti i miei programmi quì.

domenica 8 novembre 2009

Ricorrenza della pasqua (Java)

Forse non tutti sanno che il calcolo della ricorrenza di una delle festività più importanti per i cattolici quale la pasqua non è cosa da poco!

Come per la maggior parte delle feste cattoliche anche la pasqua è un miscuglio di tradizioni di altre religioni, infatti la data della pasqua ha a che fare con la pasqua ebraica(che è tutt'altra cosa! ricordo che gli ebrei non credono nella venuta del messia! quindi per loro non avrebbe alcun significato celebrare la pasqua cattolica) la quale si basa sulle fasi della luna.

Ovviamente il moto della luna è diverso da quello terrestre e di anno in anno la data x è diversa! come se non bastasse la pasqua si festeggia la domenica successiva alla data x!

Vi dico solo che il calcolo non è per niente banale e mi limito a rimandarvi alla pagina di wikipedia dove è descritto l'algoritmo che ho utilizzato! Non provo a spiegarvi l'algoritmo perchè è già complicato di suo! Ho usato l'algoritmo di Gauss che è molto più semlice rispetto agli altri proposti nella pagina di wikipedia e che ha il vantaggio di indicare la data esatta!

ecco il codice:

  1. public class Pasqua

  2. {

  3.     public static void main (String[] args)

  4.     {//algoritmo cristiano per il calcolo della pasqua secondo il calendario gregoriano(metodo aritmetico di Gauss) http://it.wikipedia.org/wiki/Calcolo_della_Pasqua#Metodo_aritmetico_di_Gauss

  5.          int y = 2010;//anno gregoriano compreso tra il 1583 ed il 2499

  6.         final int a = y%19;

  7.         final int b = y%4;

  8.         final int c = y%7;

  9.         int m = 24;

  10.         int n = 5;

  11.         // assegnazione m ed n in base al secolo di y

  12.         if (y>=1583 && y<=1699)

  13.         {

  14.             m = 22;

  15.             n = 2;

  16.         }

  17.         else if (y>=1700 && y<=1799)

  18.         {

  19.             m = 23;

  20.             n = 3;

  21.         }

  22.         else if (y>=1800 && y<=1899)

  23.         {

  24.             m = 23;

  25.             n = 4;

  26.         }

  27.         else if (y>=1900 && y<=2099)

  28.         {

  29.             m = 24;

  30.             n = 5;

  31.         }

  32.         else if (y>=2100 && y<=2199)

  33.         {

  34.             m = 24;

  35.             n = 6;

  36.         }

  37.         else if (y>=2200 && y<=2299)

  38.         {

  39.             m = 25;

  40.             n = 0;

  41.         }

  42.         else if (y>=2300 && y<=2399)

  43.         {

  44.             m = 26;

  45.             n = 1;

  46.         }

  47.         else if (y>=2400 && y<=2499)

  48.         {

  49.             m = 25;

  50.             n = 1;

  51.         }

  52.         //calcolo d ed e

  53.         int d = (19*a+ m)%30;      

  54.         int e = (2*b+4*c+6*d+ n)%7;

  55.         // calcolo del giorno

  56.         if (d+e<10)

  57.         {

  58.             int marzo = d+e+22;//caso marzo

  59.             System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno " + marzo + " del mese di marzo");

  60.         }

  61.         else

  62.         {

  63.             int aprile = d+e-9;

  64.             if (aprile == 26)//eccezione 1 aprile

  65.                 System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno 19 del mese di aprile");

  66.             else if (aprile == 25 && e==6 && a>10  )//eccezione 2 aprile

  67.                 System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno 18 del mese di aprile");

  68.             else// caso generico aprile

  69.                 System.out.println("La pasqua dell anno gregoriano " + y + " cade nel giorno " + aprile + " del mese di aprile");

  70.         }

  71.     }

  72. }



Se siete finiti quì perchè cercavate la data della pasqua di un anno x compreso tra il 1583 ed il 2499, chiedete pure che ve lo calcolo.

giovedì 5 novembre 2009

Interi binari con una sola cifra 1 (Java)

Questo é l'ultimo programma che pubblicherò oggi(per oggi ho finito dopo tre settimane dall'inizio del corso di programmazione sono arrivato fin quì)
Ho creato questo programma per necessità, volevo sapere quali erano i 32 valori che avessero una sola cifra di valore 1 e tutte le altre cifre "0"
Così ho buttato qualche comando ed in pochi secondi ho trovato tutti gli altri 31 valori che mi interessavano.
Sono partito dalla cifra scontata di
1 = 00000000 00000000 00000000 00000001
e poi mi sono shiftato a sx di un posto alla volta stampando il valore.

ecco il codice:

public class Unobit
{
public static void main (String[] args)
{
int a = 1;
int cont = 0;
while (cont !=32)
{
cont++;
System.out.println(a);
a = a<<1;
}
}
}


Ecco il risultato:
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
-2147483648

Come potete notare la cifra successiva si ottiene moltiplicando per due la precedente!(non è un caso! è così proprio perchè stiamo parlando di cifre binarie!)
L'ultimo numero è negativo perchè entra in gioco ilcomplemento a due (se non sapete cos'è non ci fate caso più di tanto.)


Potete trovare tutti i miei programmi quì.