sabato 26 gennaio 2013

Il linguaggio C: Sesta puntata

In questa puntata del tutorial sul linguaggio c spiego il #define, il getchar(), il putchar() e i cicli while e for.
  • Il #define si  usa per definire una costante, si inserisce tra #include e main() (o la dichiarazione delle funzioni) e si scrive in questo modo: #define NOME VALORE (ad esempio #define PI 3.14) in questo modo alla costante PI viene assegnato il valore 3.14...      NB: il C è case sensitive quindi se una costante viene dichiarata come PI nel codice dovrà essere sempre ripresa come PI
  • getchar() e putchar() rispettivamente leggono e stampano un carattere da/a schermo, ad esempio, per leggere un carattere a da schermo si scrive a=getchar(); mentre per stampare un carattere a a schermo si scrive putchar(a);
  • Il ciclo while è equivalente al ciclo do-while solo con condizione iniziale, si scrive così:
          .....
          while (condizione)
          {
                 istruzione 1;
                 istruzione 2;
                 ....
                 istruzione n;
           }
           .....
  • Il ciclo for è il più usato perchè le istruzioni di inizializzazione, verifica e contatore sono sulla stessa linea, si scrive così:
          .....
          for(inizializzazione;verifica;contatore)
          {
              istruzione 1;
              istruzione n;
          }
          ....
          ad esempio:
         
          #include <stdlib.h>
          #include <stdio.h>
          main()
          {
             int a;
             for (a=0;a<10;a++)
             {
                 if (a%2!=0)
                   printf("%d\n",a);
             }
             system("PAUSE");
         }


VIDEO

venerdì 18 gennaio 2013

Il Linguaggio C - Quinta Puntata

Nella nuova puntata del tutorial sul linguaggio C spiego le funzioni all'interno di un programma:
Una funzione è un'istruzione che viene dichiarata all'inizio del programma, prima del main, che può essere utilizzata all'interno del programma
La funzione si dichiara così:
Librerie.h
tipo_funzione_(ad esempio int o void) nome_funzione ( tipo_variabile nome_variabile,.....)
{
     istruzioni;
     return(valore) [non si usa se la funzione è di tipo void]
}
main()
{
   programma;
}

ad esempio:

#include <stdlib.h>
#include <stdio.h>
int minimo_comune_multiplo (int a, int b)
{
    int r;
    do
    {
        r=a%b;
        a=b;
        b=r;
    } while (r!=0);
    return(a);
}
main()
{
      int a,b,mcd;
      printf("Inserisci due numeri: ");
      scanf("%d %d",&a,&b);
      mcd=minimo_comune_multiplo(a,b);
      printf("MCD=%d\n\n",mcd);
      system("PAUSE");
}


Video: CLICCA QUI

sabato 12 gennaio 2013

Esplora Risorse Ha Smesso Di Funzionare - ASUS

Per tutti quelli che hanno un pc ASUS e hanno il problema del riavvio continuo di Esplora Risorse
Link Originale: http://www.nexthardware.com/forum/microsoft-windows-7/77146-soluzione-notebook-asus-con-windows-seven-64bit-esplora-risorse-ha-smesso-di-funzionare.html

Non è la prima volta che nell'ultimo periodo mi vengono portati a far controllare notebook Asus di recente produzione (in genere della serie X53S) con Windows 7 Home Premium 64bit, aventi un ben preciso e quantomai fastidioso problema, sistematicamente ad ogni avvio del s.o..

Gli amici e sfortunati proprietari, essendosi recati in precedenza al centro assistenza Asus, si erano sentiti dire la solita frase di rito:

"Non è un problematica di tipo hardware, ma solo un problema di virus. C'è il bisogno della formattazione del disco fisso e la conseguente reinstallazione del s.o.!".


Ovviamente a seguito della domanda spontanea dei proprietari:

"Quanto viene a costare reimpossessarci del notebook funzionante?",

la risposta degli addetti era stata altrettanto spontanea:

"35 euro!"

Ho deciso pertanto di creare questo topic affinché possa essere d'aiuto a quanti in futuro dovessero imbattersi nelle medesime sfortunate circostanze.


Passiamo però subito all'analisi del problema.

I notebook in questione appena avviati presentavano tutti l'ormai famosa nonché davvero irritante anomalia del continuo ed incessante crash di Explorer.exe (purtroppo, le stesse modalità accadevano anche in modalità provvisoria), seguito dalle altrettanto incessanti operazioni automatiche di ripristino e dal relativo riavvio dell'intero desktop.

La frequenza dei crash e delle procedure di recupero da parte di Seven si veniva a manifestare al ritmo di ogni 10-15 secondi, ed in un modo tale da non permettere praticamente alcuna regolare attività.

Al momento di ogni singolo crash l'unica indicazione mostrata a video era contenuta in una piccola finestra di avviso con la seguente indicazione:

"Esplora risorse ha smesso di funzionare",

Nome:   EspRisorse-Crash.jpg
Visite:  4278
Grandezza:  12.4 KB


nelle versioni in lingua inglese di Windows Seven x64, invece la finestra di avviso era la seguente:

"Windows Explorer has stopped working",

Nome:   Win-Explorer_stopped.jpg
Visite:  948
Grandezza:  18.5 KB


con le sole possibilità di agire sul pulsante "Annulla" ("Cancel" per le versioni in lingua inglese) o sulla "X" di chiusura finestra.

Al momento che mi fu portato il primo notebook della serie, goglando un pò ero venuto a scoprire di una serie innumerevole di casi esattamente identici.
Casi che, in buona parte, erano rimasti purtroppo tutti irrisolti.

Mi ero quindi messo d'impegno per risolvere il problema all'amico di turno e avevo iniziato con l'esaminare per bene il notebook alla ricerca di rootkit, virus, malware o quant'altro di analogo. Dopo esser riuscito a killare definitivamente il task Explorer.exe, non avevo avuto comunque modo di scovare assolutamente la benché minima traccia di tutto ciò.

A questo punto, inziando ad inquadrare in maniera diversa il tipo di anomalia, mi erano venuti in mente casi con circostanze analoghe già trattati in passato: avevo pertanto spostato il mio interesse sulla probabile causa che doveva, a questo punto, essere di tutt'altro tipo.

Essendo pertanto passato a visionare nei minimi dettagli i dump degli innumerevoli crash, mi ero quindi tovato di fronte al fatto, divenuto consolidato, che uno dei moduli interessati appariva essere praticamente sempre il medesimo: ASUSWSShellExt64.dll.

A questo punto compresi che si trattasse con evidenza di uno dei programmi preinstallati da Asus sul notebook; più precisamente, alla luce della denominazione, doveva essere un modulo di tipo shell-extensions, quelli usati a complemento del programma principale, attivati tramite l'azione del click destro del mouse sui singoli files da trattare.

Questo tipo di moduli, infatti, sono elaborati ad ogni avvio del s.o. e vengono automaticamente agganciati in modalità diretta al programma principale, anche senza alcuna interazione diretta e consapevole da parte dell'utente.

Dapprima decisi, quindi, di utilizzare il sempre ottimo DependencyWalker-x64, effettuando un'analisi sui file AsusWSPanel.exe e AsusWSService.exe, realizzai che il programma principale alla fonte del problema dovesse essere in via definitiva l'Asus Web Storage .

Nome:   ASUS-WebStorage.jpg
Visite:  1012
Grandezza:  15.6 KB

Giusto per spiegare di cosa si tratta, questo software Windows compatibile messo da Asus a completa disposizione dell'acquirente il notebook, permette la sincronizzazione o il backup online dei propri dati su uno spazio cloud gratuito di 2GB (simil DropBox, per intenderci).

E' bene precisare che (al momento dell'ultimo aggiornamento di questo post) il servizio di cloud-storage sui server di Asus è fornito gratuitamente dall'azienda taiwanese limitatamente al primo anno di utilizzo, significando che per continuare ad usufruirne per quelli successivi è necessario il pagamento di una somma variabile a seconda della quantità di spazio di archiviazione richiesto.


Tornando agli aspetti peculiari della rognosa problematica, ultimando un'analisi ancor più approfondita mi fu possibile appurare come il programma eseguibile fatto girare in memoria, artefice dell'interfaccia tra l'utente ed il servizio di storage, non rappresentasse in realtà la causa diretta in sé del problema.

Purtroppo, a seguito di aggiornamenti e patch di sistema, e/o di installazioni di nuovi programmi con funzionalità varie, la DLL a 64bit in questione (ASUSWSShellExt64.dll, quindi con implicazioni nella sola versione a 64bit del programma) comincia a manifestare delle malfunzioni derivate presumibilmente da errori in fase di programmazione; errori che sembrano essere invece completamente assenti nella versione a 32bit.

Continuando nella disamina, per giungere alla soluzione del problema mi è stato decisamente utile l'uso della preziosa utility ShellExView v1.76.

[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-shellexview-01.jpg

Questo compatto ed impagabile software di NirSoft, mi ha messo nella condizione di poter in qualche modo isolare l'origine essenziale del problema: ciò è reso possibile in quanto ShellExView permette di forzare in maniera diretta la disabilitazione del modulo precisamente interessato.

Per finalizzare la disabilitazione dell'estensione della shell tramite ShellExView, il programma mette a disposizione una semplice interfaccia, composta da una lista delle estensioni abilitate sul sistema in uso sul s.o.

E' sufficiente scorrerla in ordine alfabetico sino ad individuare il nostro ASUSWSShellExt64, e tramite il tasto dx del mouse sulla riga interessata, apparirà il relativo menu contestuale:

Nome:   ShellExView-02.jpg
Visite:  1008
Grandezza:  31.3 KB

Semplicemente cliccando sull'opzione Disable Selected Items, o ancora più semplicemente cliccando sul pulsante rosso in alto a sx sulla finestra di ShellExView, proprio sotto il menu File, il modulo interessato viene di fatto direttamente disabilitato.


Le ulteriori attività svolte nella circostanza mi portarono anche ad appurare la, presumibilmente indiretta, correlazione di quel modulo con un altro programma fornito da Asus a corredo del notebook: Asus Live Update. Anch'esso è sembrato infatti in qualche modo interagire con uno o più moduli all'origine del problema.

A questo punto non mi restò da fare che avviare nuovamente Explorer da riga di comando, avendo così modo di poter verificare la correttezza di quanto mi era stato possibile accertare.

Da sottolineare come durante le attività portate a termine sui vari notebook, è bastato disabilitare il solo Asus Web Storage per giungere alla stabilità del sistema, e solo in un'occasione il problema ha continuato a persistere. Quindi, se le problematiche dovessero in qualche modo ancora sussistere anche a voi, allora non esitate a procedere con la ulteriore disabilitazione anche di Asus Live Update.

Per la soluzione definitiva al problema non mi restò altro che portare semplicemente a termine la disinstallazione, dapprima di Asus Web Storage, quindi in misura precauzionale anche di Asus Live Update.

Start:
[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-disinstalla-00.jpg


Pannello di controllo:
[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-disinstalla-01.jpg

Disinstalla un programma:
[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-disinstalla-02.jpg

Elenco programmi installati:
[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-disinstalla-03.jpg

Individuare i programmi interessati:
[Soluzione] notebook ASUS con Windows Seven 64bit: "Esplora risorse ha smesso di funzionare"-disinstalla-04.jpg
(la data, la dimensione e la versione dei software effettivamente installati sul vostro notebook potrebbero differire da quelle riportate in figura.)


A questo punto, con un doppio click, singolarmente su ognuno dei due, sarà possibile disinstallarli in maniera corretta e definitiva. Al successivo riavvio il problema sarà del tutto scomparso.

I TORRENT

I TORRENT
Nel nuovo video dell'anno parliamo ancora di download da internet...in questo caso parliamo di torrent...un torrent è un'estensione di file di tipo binario crittografati che permettono, attraverso appositi programmi (come µTorrent) di scaricare file attraverso dei Seeders (cioè degli utenti che caricano il file).....
Per scaricare un buon film con torrent, esso deve avere il nome così strutturato:
NOME FILE : Cioè il nome del film da scaricare

BDRip/DVDRip : Se il film è già uscito in DVD/BD un torrent con questa informazione è più attendibile

LINGUA : Ovviamente la lingua del film da scaricare

NOME DELL'AUTORE DEL TORRENT : Non va inserito nella ricerca, dipende da torrent a torrent


Inoltre, dopo aver individuato il possibile file (possibilmente trovando su Google il link che porta a torrentz.eu), bisogna controllare la grandezza (Per un DVDRip minimo 700 MB mentre per un BDRip può superare anche 1 GB) e il numero di Seeders (più è alto più sarà veloce il download, forse). Sicuramente ci vuole anche molta fortuna ma con il tempo e l'esperienza si migliora òa probabilità di scaricare file corretti (e non corrotti, cioè rovinati)...

martedì 1 gennaio 2013

Buon Anno!

Vi auguro un felice anno nuovo...Entro la prima settimana di scuola arriverà il nuovo video...Ancora buon anno da AAC.