Pagine

venerdì 8 maggio 2009

NSLU2 Backup via rete

Premessa

Quando si parla di backup all'interno di una piccola azienda o in casa, di solito si pensa ad un hard disk portatile sul quale salvare di tanto in tanto, quando ci ricordiamo ed abbiamo voglia, i nostri dati.
Questo metodo ha il vantaggio di essere economico (un hd da 500Gb oggi costa sul centinaio di euro) ma manca di sistematicità ed è limitato.
Un hard disk, infatti, è collegabile ad un singolo computer per volta e non è possibile accedervi da remoto. Queste funzionalità, sebbene per l'utente casalingo siano inutili, per un piccolo ufficio possono rappresentare un plus importante. Per rispondere a questa esigenza esistono diversi sistemi e tutti piuttosto costosi.
Tempo fa però mi sono imbattuto nel NSLU2 . Di seguito qualche considerazione.

NSLU2

L'NSLU2 è un apparecchietto veramente compatto ed estremamente economico (circa 100€). E' dotato di due porte USB alle quali si possono attaccare altrettanti hard disk o chiavette USB sia 1.1 sia 2.0 ed una scheda Ethernet. E' prodotto dalla Linksys ed il suo cuore è costituito da un processore ARM a 266MHz con 32Mb di memoria flash sul quale è immagazzinato un firmware minimale.
Il sistema operativo è, ovviamente, linux. Una versione ridotta come si può facilmente immaginare.
Tale sistema permette di collegarsi da macchine windows, mac e linux via samba ed essere utilizzato come fileserver mettendo a disposizione ben due hard disk in maniera del tutto trasparente per l'utente finale che vedrà un semplice hard disk contraddistinto da una lettera.
L'NSLU2, inoltre, è dotato di interfaccia web e può essere controllato da remoto. Anche i file, debitamente protetti da password, possono essere scaricati da remoto tramite l'interfaccia web. Oltre a tutti questi vantaggi sono da notare anche le dimensioni estremamente ridotte (in figura si vede che è poco più grande di una mela) ma soprattutto l'assenza di rumorosità (non ci sono ventole che girano per cui estremamente silenzioso) e i bassissimi consumi.

C'è di più sotto la superficie

Come accennato precedentemente, il sistema operativo di questo apparecchietto è linux. Questo è ovviamente un vantaggio perchè ci permette di modificare il sistema operativo a nostro piacimento.
Navigando sul web, infatti, è facile trovare informazioni riguardanti hacking del sistema operativo. Il sito di riferimento è http://www.nslu2-linux.org/ nel quale si possono trovare informazioni su come modificare il cuore del sistema. E' possibile, infatti, installare distribuzioni differenti; addirittura una debian 5.0.
E' facile immaginare le possibilità che questo comporta. Si può pensare di "trasformare" il nostro NSLU2 in un server di posta, ftp, ssh, openvpn....
Ci sono alcuni progetti sul web di persone che lo hanno "trasformato" in un sistema GPS, altri che lo hanno fatto diventare un server IMAP/SMTP. Insomma, può essere adatto a tutte quelle applicazioni che non necessitino di interfaccia grafica (sebbene un fluxbox minimale sia concesso installarlo) e di un utilizzo della CPU contenuto. L'installazione del firmware è molto semplice e non comporta particolari difficoltà.

Conclusioni

In conclusione sono entusiasta di questo apparecchietto.
Il costo piuttosto basso permette l'acquisto anche da parte dell'utente casalingo.
Le prestazioni non sono titaniche ma per sistemi di casa e piccoli uffici sono decisamente buone.
L'elevato tempo di uptime ed il basso consumo lo rendono un compagno ideale se si vogliono buoni rendimenti senza spendere capitali in elettricità.
Infine la quasi assenza di rumorosità lo rendono ideale anche da mettere in camera da letto.

mercoledì 11 marzo 2009

Ottimizzare Windows XP

Premessa

Ieri sera, mi è capitato di riprendere il mio vecchio portatile sul quale ho installato Windows XP. Abituato alle prestazioni della nuova macchina, i 3 minuti di boot e i 4 minuti passati dal login al poter operare sulla macchina.... mi sono sembrati una eternità. Ho quindi iniziato a cercare qualcosa che mi potesse aiutare a velocizzare la macchina e mi sono imbattuto in questi programmini.

Free Registry Cleaner

Questo programma permette di ripulire il registro di sistema di windows che, notoriamente, è uno dei colli di bottiglia peggiori a livello prestazionale nell'utilizzo di una macchina con questo sistema operativo. Il software è davvero semplice da usare, analizza tutte le parti del registro identificando gli errori che sono causa di rallentamenti, crash e riavvio del computer e li ripristina o li cancella nel caso in cui appartengano ad applicazioni non più esistenti. Permette, inoltre il salvataggio preventivo del registro (da effettuare preferibilmente prima di fare pulizia) e l'eventuale ripristino se qualcosa non dovesse andare a buon fine. Trattandosi di un programma Freeware è scaricabile ed utilizzabile senza particolari vincoli.
Lo si può trovare qui anche se una veloce ricerca su un motore di ricerca può dare molte altre alternative.
Utilizzando questo programma sono riuscito ad eliminare ben 1300 voci...

CCleaner

Questo programma permette di scansionare l'hard disk della macchina alla ricerca di file temporanei obsoleti, cache di browser, file corrotti, files di log e file nel cestino. A differenza dell'utility di windows è riuscita a farmi risparmiare ben 250Mb che su un hard disk di 30Gb... sono molto utili. Anche questa applicazione, come la precedente è freeware e quindi utilizzabile senza alcun problema.
La si può scaricare a questo indirizzo.

Autoruns

Questo programma è una utility firmata Microsoft.
E' un software gratuito e permette di analizzare ogni programma, utility, DLL che vengano caricati all'avvio del computer. Sebbene sia estremamente semplice da utilizzare è da maneggiare con estrema cautela per via del fatto che togliendo il flag ad una o più opzioni si rischia di non avviare servizi indispensabili per l'utilizzo del computer. Tuttavia è un ottimo spunto per gli utenti meno esperti che hanno uno strumento che funge da base di partenza per effettuare domande mirate su forum o canali a tema. L'utente smaliziato, poi, potrà trarre enorme vantaggio da questo software permettendo di scoprire eventuali spyware o trojan.
Il software è scaricabile qui.

Conclusioni

Questi tre programmi mi hanno aiutato in una sera a velocizzare il mio vecchio portatile. Certo, non ha sicuramente le prestazioni di una macchina recente ma i suoi 512Mb di Ram e i suoi 30Gb di hard disk mi sono sufficienti per lavorare con disinvoltura a patto di non appesantirlo con programmi onerosi in termini computazionali.

giovedì 5 marzo 2009

Arduino

Cosa è...

Arduino è una scheda elettronica sulla quale è stato montato un microcontrollore AVR. La scheda può comunicare con il computer tramite un cavo USB che emula la connessione di tipo seriale (da una velocità di 9600 a 11560).
Tale connessione, oltre allo scambio di dati con il PC permette la programmazione del microcontrollore. Sulla scheda, inoltre, sono montati diversi "piedini" che possono essere utilizzati come OUTPUT o come INPUT a seconda di cosa preferisce l'utente e di cosa si vuole interfacciare alla scheda. A questi piedini possono essere collegati, tramite fili elettrici, molteplici sensori (se configurati come INPUT) o display, lampade, LED (se configurati come OUTPUT).

Il linguaggio che permette di controllare l'AVR è decisamente semplice e molto simile, come sintassi al C. Lavorando ad una frequenza di 16Mhz, assorbe da 6V-12V (quindi può essere alimentata anche con la presa dell'accendino in auto) e 300mA di corrente.

Shields

Come se tutto questo non bastasse, la scheda Arduino può essere "espansa" tramite moduli aggiuntivi che si "montano" sui piedini e che vengono chiamati "shield".
Esistono decine di shield diversi; alcuni sono opera di smanettoni, altri semplici prototipi senza finalità, altri ancora sono ufficiali e rilasciati dalla medesima azienda che produce la scheda, Tinker! altri ancora forniti da aziende in giro per il mondo come LiquidWare .
Molti riguardano metodi alternativi per la comunicazione con il computer. Ad esempio si può montare uno shield che permette ad Arduino di comunicare con il mondo esterno via bluethoot o tramite ZigBee e addirittura via Ethernet. Altri permettono di memorizzare informazioni su EEPROM esterne oppure di controllare Motori o gruppi di lampade. Altri ancora sono più "esotici" ed hanno funzioni "strane" come quello in figura, il tank shield della LiquidWare che permette di portare in giro Arduino ...









Linguaggio di programmazione

Come scritto prima, il linguaggio di programmazione è estremamente semplice e molto simile al C. Il listato si divide in tre parti fondamentali.
  1. La definizione delle variabili o delle costanti che serviranno durante tutto il programma
  2. La definizione della funzione setup che inizializza la comunicazione con il PC, definisce quali piedini sono in ingresso e quali in uscita ed altre particolarità all'uopo
  3. La definizione della funzione loop in cui si definiscono le azioni che Arduino deve effettuare ciclicamente 16 milioni di volte al secondo.
Queste tre fasi possono essere più o meno lunghe a seconda del programma. Segue un semplice esempio, una sorta di HelloWorld che permette di fare lampeggiare un LED ciclicamente direttamte compiato dal sito Arduino/Tutorial.

int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}

void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}

Conclusioni

Arduino permette di espandere le funzionalità di un computer a ciò che lo circonda; permette di fargli prendere coscienza del mondo esterno e di interagire con esso. Le possibilità di utilizzo ed i campi di applicazioni sono veramente enormi.
Personalmente sto costruendo due prototipi, uno per verificare la temperatura e la umidità in casa e di registrare le informazioni ogni ora su un file di testo e un altro che mi permette di simulare un telecomando.
In giro però ho visto progetti per aiutare i disabili nell'utilizzo dei computer, applicazioni per ospedali, musei e scuole.
La cosa più bella di questo strumento è che non è necessario essere esperti informatici o ingegneri elettronici. Certo la cosa aiuterebbe senza dubbio ma non è indispensabile. Chiunque abbia acceso un PC in vita propria e sia spinto da grande curiosità può cimentarsi con questa scheda estremamente semplice.
Di seguito riporterò altre informazioni su questa piattaforma.

sabato 21 febbraio 2009

Fncychap: titoli fantasiosi di capitoli in classe book LaTeX

Premessa

Utilizzando la classe book di LaTeX può sorgere l'esigenza di avere i titoli dei capitoli impaginati in maniera differente e magari più accattivante...

Soluzione

Una soluzione semplice è utilizzare il pacchetto fncychap.

\usepackage[style]{fncychap}


dove al posto di style si mette lo stile desiderato:
  • normale


  • Sonny,


  • Lenny,


  • Glenn,


  • Conny,


  • Rejne


  • Bjarne



Ovviamente le impostazioni per eventuali personalizzazioni sono svariate e permettono di modificare la posizione delle scritte a sinistra o destra, modificare i caratteri e molto altro ancora...

mercoledì 11 febbraio 2009

Figure affiancate in LaTeX

Premessa

Può capitare di voler affiancare due o più figure in modo che vengano viste come un unico oggetto da LaTex.
In tal caso o si genera una figura unica con un editor di immagini perdendo però la possibilità di creare delle caption per ciascuna figura o si utilizza il pacchetto subfigure.
I metodi sono diversi a seconda che si desiderino figure con lo stesso numero o con numeri diversi.

Nel primo caso va utilizzato lo stile subfigure. Ad esempio:

\begin{figure}
\centering
\subfigure[Prima figura]
{\includegraphics[width=8cm]{fig1.eps}}
\hspace{5mm}
\subfigure[Seconda figura]
{\includegraphics[width=8cm]{fig2.eps}}
\caption{Titolo delle figure}
\end{figure}

Nel secondo caso invece:

\begin{figure}
\begin{minipage}[b]{8.5cm}
\centering
\includegraphics[width=8cm]{fig1.eps}
\caption{Prima figura}
\end{minipage}
\ \hspace{2mm} \hspace{3mm} \
\begin{minipage}[b]{8.5cm}
\centering
\includegraphics[width=8cm]{fig2.eps}
\caption{Seconda figura}
\end{minipage}
\end{figure}

Gestione tabelle in LaTeX

Premessa

Le tabelle in LaTeX, come in altri sistemi di composizione testi, sono oggetti complessi da gestire. Può capitare di vederle "sparire" dal luogo in cui ci si aspetta di trovarle oppure "cambiare posizione" in modo semi arbitrario nel momento in cui si aggiunge altro testo o altre tabelle. Inoltre ci sono alcune regole di composizione che è bene tenere ben in considerazione per evitare di generare tabelle brutte a vedersi oltre che difficili da gestire.

Per creare tabelle si può usare l'ambiente tabular. Se si desidera che la tabella sia flottante è bene inserire questo ambiente tra i tag denominati \begin{table} e \end{table}.
La figura mostra un chiaro esempio di cosa non si deve fare quando si creano tabelle.

Regole di creazione tabella

Per creare una tabella è necessario tenere in considerazione alcuni punti chiave:
  • non utilizzare mai righe verticali, meno che mai doppie;
  • allineare i numeri a destra e il testo al centro o sinistra;
  • specificare eventuali unità di misura nella intestazione, mai nel corpo;
  • utilizzare, nei numeri, sempre lo stesso numero di decimali;
  • non usare mai le virgolette per ripetere il valore soprastante: ripeterlo o lasciare in bianco.

L'origine: le tabulazioni

L'ambiente tabular è nato, originariamente per creare tabulazioni:

\begin{tabular}{clr}

Pippo & bianco & 102,5 \\
Paperino & nero & 15,4 \\

\end{tabular}

Questo codice definisce un testo tabulato con tre colonne "clr" di cui:
  • c: la prima allineata al centro,
  • l: la seconda allineata a sinistra,
  • r: la terza allineata a destra
E' fondamentale ricordarsi il simbolo // al termine di ogni riga per evitare errori difficilmente diagnosticabili.
Eventualmente si può voler specificare quanto spazio deve intercorrere tra una colonna e l'altra. Per fare ciò ci viene in aiuto il comando p{distanza}. Sempre meglio esprimere tale distanza in valore relativo:

\begin{tabular}{p{.3\textwidth}r}

bianco & 102,5 \\

nero & 15,4 \\

\end{tabular}


Per inserire righe verticali si utilizzi il comando \hline.
Al posto di \hline, per migliorare la visibilità si può usare il pacchetto booktabs che ci permette di inspessire le linee o creare righe a metà:

\begin{tabular}{llr}\toprule

Pippo & bianco & 102,5 \\\cline{2-3}
Pluto & nero & 15,4 \\\midrule
Paperino & giallo & 12,4 \\\bottomrule
\end{tabular}

Particolarmente utili sono i comandi che permettono ad un testo di occupare più righe (nel caso di titoli) o più colonne (tramite il pacchetto multirow):


\begin{tabular}{lr} \toprule
\multicolumn{2}{c}{intestazione}\\ \toprule
\multirow{2}*{colore} & 102,5 \\
& 15,4 \\ \bottomrule
\end{tabular}

domenica 8 febbraio 2009

Lettere di inizio paragrafo su due linee in LaTeX

Premessa

In un documento, un effetto particolarmente accattivante è rappresentato dalla prima lettera di un paragrafo che occupa due linee come in figura:

Per ottenere questo effetto è possibile utilizzare il pacchetto lettrine.
A questo scopo, si inserisca nel preambolo il consueto:

\usepackage{lettrine}

mentre nel documento, per creare una lettera che occupi più linee (come si nota dall'esempio sottostante si possono specificare nelle opzioni) si può procedere come segue:

\lettrine[lines=2]{S}{}copo di questa appendice è...

Un piccolo problema può insorgere nel momento in cui si voglia inserire un apostrofo subito dopo la lettera come nel caso "L' ".
In questi casi si può semplicemente inserire uno spazio "negativo" tra la lettera e l'apostrofo come segue:

\lettrine[lines=2]{L\negthinspace'}{ }obiettivo

oppure:

\lettrine{L\neghtinspace'}{obiettivo della presente} dissertazione è...