<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nerdsopolis &#187; linux</title>
	<atom:link href="http://www.nerdsopolis.net/wp/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nerdsopolis.net/wp</link>
	<description>Klaatu barada nikto!</description>
	<lastBuildDate>Wed, 18 Jan 2012 11:14:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Ubuntu tips &amp; tricks</title>
		<link>http://www.nerdsopolis.net/wp/2010/09/13/ubuntu-tips-tricks/</link>
		<comments>http://www.nerdsopolis.net/wp/2010/09/13/ubuntu-tips-tricks/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 09:30:17 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.nerdsopolis.net/wp/?p=2340</guid>
		<description><![CDATA[Ho aggiornato recentemente il mio portatile a lucid (10.04) e mi sono accorto che mi mancavano due funzionalità indispensabili che ho subito abilitato. 1. Ctrl-Alt-Backspace Questa è abbastanza facile, dato che a partire dalle Release Notes di ubuntu 10.04 si trova la guida per abilitare questo indispensabile comando. Per chi non è familiare con Ctrl-Alt-Backspace, [...]]]></description>
			<content:encoded><![CDATA[<p>Ho aggiornato recentemente il mio portatile a lucid (10.04) e mi sono accorto che mi mancavano due funzionalità indispensabili che ho subito abilitato.</p>
<h2>1. Ctrl-Alt-Backspace</h2>
<p>Questa è abbastanza facile, dato che a partire dalle <a href="https://wiki.ubuntu.com/LucidLynx/ReleaseNotes" target="_blank">Release Notes di ubuntu 10.04</a> si trova la guida per abilitare questo indispensabile comando. Per chi non è familiare con Ctrl-Alt-Backspace, è un comando che consente di forzare il riavvio del gdm (Gnome Display Manager) o detto ancora più semplicemente, il livello software che si occupa di creare il front end grafico: icone, finestre, sfondo&#8230; che di solito è l&#8217;unica fonte di crash e blocchi del pc.<br />
<span id="more-2340"></span></p>
<ol>
<li>Selezionare &#8220;Sistema&#8221; =&gt; &#8220;Preferenze&#8221; =&gt; &#8220;Tastiera&#8221;</li>
<li>Aprire il tab &#8220;Disposizioni&#8221;</li>
<li>Cliccare su &#8220;Opzioni&#8221;</li>
<li>Espandere &#8220;Sequenza di tasti per attivare il server X&#8221;</li>
<li>Spuntare &#8220;Control + Alt + Backspace&#8221;</li>
</ol>
<h2>2. Tenere sott&#8217;occhio l&#8217;output del kernel</h2>
<p>Quando si ha a che fare con dell&#8217;hardware nuovo o magari mal supportato o ancora difettoso, può essere molto utile osservare lo standard output del kernel per vedere quali messaggi di errore vengono visualizzati.</p>
<p>E&#8217; inoltre molto comodo avere una finestra sempre aperta ed aggiornata che segua continuamente i messaggi in modo da poter vedere&#8230; matrix che lavora!</p>
<p>Per fare questo mi sono creato un lanciatore (icona) sul desktop nel seguente modo:</p>
<ol>
<li>Click con il destro sul desktop =&gt; &#8220;Crea lanciatore&#8230;&#8221;</li>
<li>Tipo: &#8220;Applicazione nel terminale&#8221;</li>
<li>Nome: &#8220;Dmesg watch&#8221;</li>
<li>Comando:</li>
</ol>
<pre class="brush:bash">gksudo watch "dmesg | tail -20"</pre>
<p>Creata l&#8217;icona, mi basta cliccarci sopra per tenere continuamente sott&#8217;occhio il kernel comodamente sul desktop. Ah, il programma chiede di inserire la password di root perchè deve essere eseguito dall&#8217;amministratore del sistema.</p>
<p>Se avete altri tips &amp; tricks da suggerire, scriveteli nei commenti, io li inserirò nell&#8217;articolo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2010/09/13/ubuntu-tips-tricks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>gnome-volume-control fissato con il &#8220;muto&#8221;</title>
		<link>http://www.nerdsopolis.net/wp/2009/11/25/gnome-volume-control-fissato-con-il-muto/</link>
		<comments>http://www.nerdsopolis.net/wp/2009/11/25/gnome-volume-control-fissato-con-il-muto/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 18:01:56 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[bash script]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[xbmc]]></category>

		<guid isPermaLink="false">http://www.nerdsopolis.net/wp/?p=2106</guid>
		<description><![CDATA[Dopo l&#8217;aggiornamento a ubuntu 9.10 &#8211; Karmic Koala &#8211; ho riscontrato che spesso, dopo il riavvio del computer la scheda audio viene messa arbitrariamente in &#8220;mute&#8221;. L&#8217;errore credo sia nella nuova applicazione che è stata introdotta per la gestione della scheda audio e dei vari volumi in gnome: gnome-volume-control. A prescindere dal fatto che è [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Dopo l&#8217;aggiornamento a ubuntu 9.10 &#8211; Karmic Koala &#8211; ho riscontrato che spesso, dopo il riavvio del computer la scheda audio viene messa arbitrariamente in &#8220;mute&#8221;.</strong> L&#8217;errore credo sia nella nuova applicazione che è stata introdotta per la gestione della scheda audio e dei vari volumi in gnome: <strong>gnome-volume-control</strong>.</p>
<p>A prescindere dal fatto che è scomodo dover, tutte le volte che si accende il computer, ripristinare il &#8220;muto&#8221; della propria scheda; esistono anche dei casi in cui non è possibile aprire l&#8217;applicazione con il mouse, dal desktop di gnome.</p>
<p>E&#8217; infatti il caso in cui un cretino (a caso), dopo aver passato ore a settare il proprio media center basato su linux e xbmc, sdraiato sul divano, fa partire dal suo telecomando la visione di un film e non sente un bel niente.</p>
<p><span id="more-2106"></span>Non ci sono versi, il cretino le prova tutte: abbassa ed alza il volume, mette e toglie il muto, riavvia xbmc, riavvia il computer&#8230; niente, la scheda audio è e rimane sempre in muto.</p>
<p>Allora sono passato alle maniere forti: prendo il portatile, accedo in ssh al media center ed apro &#8220;alsamixer&#8221;, tolgo il muto dalle periferiche e riprovo&#8230; niente, è ancora in muto. Perchè?</p>
<p>Mi tocca attaccare il mouse e la tastiera al media center, esco dalla sessione con xbmc e accedo a gnome. Levo la spunta da &#8220;muto&#8221; nel pannello e&#8230; magia, l&#8217;audio torna perfettamente funzionante. Se però contemporaneamente smanetto su alsamixer, quando metto in muto con gnome-volume-control non riesco più a ripristinarlo. Perchè?</p>
<p><strong>Dopo tante domande, finalmente sono giunto ad una risposta.</strong></p>
<p>Infatti ho scoperto che quando gnome-volume-control imposta il &#8220;muto&#8221;, <strong>agisce su 3 diversi canali: Master, Headphone e Speaker.</strong></p>
<p>Per questo motivo, anche levando il muto solo da Master o Speaker, il simbolo di muto non va via da gnome  e l&#8217;audio non torna a funzionare.</p>
<p>Il motivo per cui però, il programma tende sempre a resettare lo stato della scheda audio mi è tutt&#8217;ora ignoto.</p>
<p>Comunque, per risolvere basta dare questi tre comandi da una console:</p>
<pre class="brush:bash">amixer -- set Master unmute
amixer -- set Headphone unmute
amixer -- set Speaker unmute</pre>
<p>Volendo, per essere sicuri che tutto vada per il meglio, si può anche forzare amixer di settare i volumi al 100%:</p>
<pre class="brush:bash">amixer -- set Master playback 100% unmute
amixer -- set Headphone playback 100% unmute
amixer -- set Speaker playback 100% unmute</pre>
<p>Per essere sicuro di non scordarmi nulla e di non dover più agire manualmente, la mia soluzione preferita è, come al solito, crearmi <strong>uno script</strong>&#8230; anzi due: uno per mettere in muto ed uno per levare il muto. E già che ci sono (a morte l&#8217;avarizia!) lo faccio anche colorato!<br />
Ah, per risolvere il mio problemino in xbmc mi basta a questo punto far eseguire lo script ad ogni avvio del programma.</p>
<pre class="brush:bash">#!bin/sh

amixer -- set Master mute
amixer -- set Headphone mute
amixer -- set Speaker mute

echo "Master	 	\033[31;5;148m[MUTO]"
tput sgr0
echo "Headphone 	\033[31;5;148m[MUTO]"
tput sgr0
echo "Speaker		\033[31;5;148m[MUTO]"
tput sgr0</pre>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2112" title="muto" src="http://www.nerdsopolis.net/wp/wp-content/uploads/2009/11/muto.png" alt="muto" width="581" height="267" /></p>
<pre class="brush:bash">#!bin/sh

amixer -- set Master speaker 100% unmute
amixer -- set Headphone speaker 100% unmute
amixer -- set Speaker speaker 100% unmute

echo "Master	 	\033[38;5;148m[NON-MUTO]"
tput sgr0
echo "Headphone 	\033[38;5;148m[NON-MUTO]"
tput sgr0
echo "Speaker		\033[38;5;148m[NON-MUTO]"
tput sgr0</pre>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2113" title="nonmuto" src="http://www.nerdsopolis.net/wp/wp-content/uploads/2009/11/nonmuto.png" alt="nonmuto" width="581" height="287" /></p>
<p style="text-align: left;">Edit 26/11/2009: ho corretto un errore negli script.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 1478px; width: 1px; height: 1px;">
<pre class="brush:bash">playback 100%</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2009/11/25/gnome-volume-control-fissato-con-il-muto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Backup perfetti con rsync e ssh</title>
		<link>http://www.nerdsopolis.net/wp/2009/10/02/backup-perfetti-con-rsync-e-ssh/</link>
		<comments>http://www.nerdsopolis.net/wp/2009/10/02/backup-perfetti-con-rsync-e-ssh/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 13:31:02 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tar]]></category>

		<guid isPermaLink="false">http://www.nerdsopolis.net/wp/?p=2021</guid>
		<description><![CDATA[Recentemente ho scoperto il potere occulto di rsync! Che la bash (o console) sia un luogo magico, terra fertile per il proliferare di nerd, geek e folletti&#8230; beh è cosa risaputa (con mastercard). Che esse-esse-acc-arsi * su di un server remoto per salvare files importantissimi sia una emozione unica&#8230; beh anche questo è cosa risaputa [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Recentemente ho scoperto il potere occulto di rsync!</strong></p>
<p>Che la bash (o console) sia un luogo magico, terra fertile per il proliferare di nerd, geek e folletti&#8230; beh è cosa risaputa (con mastercard).</p>
<p>Che <em>esse-esse-acc-arsi *</em> su di un server remoto per salvare files importantissimi sia una emozione unica&#8230; beh anche questo è cosa risaputa (con mastercard).</p>
<p><strong>Ma controllare che ogni giorno, ogni ora, il proprio script si occupi in maniera veloce e leggera di fare i backup&#8230; non ha prezzo!</strong></p>
<p>(*) ovvero aprire una shell sicura ** su di una macchina remota con ssh</p>
<p>(**) no, non è una pratica sessuale</p>
<p>Ok, veniamo al succo: <strong>due server</strong>. Uno principale su cui gli utenti salvano i loro files (magari attraverso samba) ed uno secondario, di backup, che è il clone del primo. Lo scopo è semplice, <strong>se il primo server salta, il secondo lo può sostituire all&#8217;istante.</strong> In più sul secondo server si possono eseguire operazioni di backup o altro, senza occupare risorse del primo, che così rimane tutto a disposizione degli utenti.</p>
<p><span id="more-2021"></span></p>
<p>Per fare questo abbiamo bisogno di 4 cose:</p>
<ol>
<li>uno script che <strong>sicronizzi</strong> i due server (rsync)</li>
<li>una <strong>sessione autenticata</strong> in ssh che permetta la sincronizzazione in maniera automatica</li>
<li><strong>l&#8217;esecuzione automatica</strong> ad un orario prestabilito dello script</li>
<li>uno script che faccia i <strong>backup</strong> (anch&#8217;esso ad orari prestabiliti)</li>
</ol>
<p>Cominciamo dal primo server (quello principale) che chiameremo server1.</p>
<h2>Punto 1: Rsync</h2>
<p>Il comando rsync è molto utile poichè <strong>permette la sincronizzazione di due directory</strong> tramite il confronto dei files e la copia esclusivamente dei cambiamenti tra le due cartelle. In pratica è come eseguire un scp (secure copy) tra due cartelle, ma con un notevole risparmio di banda dato che solo le modifiche vengono trasmesse (trasferimento  incrementale).</p>
<pre class="brush:bash">rsync --delete -azv -e ssh [dir1] [dir2]</pre>
<p>Dove naturalmente <strong>[dir1]</strong> e <strong>[dir2]</strong> sono le due cartelle da tenere &#8220;clonate&#8221;, con &#8220;&#8211;delete&#8221; vengono anche eliminati i files che sono stati cancellati dalla [dir1] e con &#8220;ssh&#8221; gli diciamo di utilizzare una sessione in ssh&#8230; appunto.</p>
<p>Per specificare che la [dir2] è remota si usa la sintassi:</p>
<pre class="brush:bash">utente@macchina:cartella</pre>
<p>Bene, vediamo adesso lo <strong>script</strong> nel suo insieme:</p>
<pre class="brush:python">#!/bin/sh

#Author: fry@nerdsopolis.net
#Description: Backup tramite rsync.

#Variabili
LOCAL=/srv/samba/pub
REMOTE=/srv/samba/backup
HOST=192.168.1.100
LOG=/srv/samba/backup.log
SYNCLOG=/srv/samba/backup.synclog

#Inizio log
echo $(date +"%d/%m/%Y") | cat &gt;&gt; $LOG
echo $(date +"%H:%M.%S") backup started... | cat &gt;&gt; $LOG

#Rsync
rsync --delete -azv -e ssh $LOCAL root@$HOST:$REMOTE | cat &gt; $SYNCLOG

#Fine log
echo $(date +"%H:%M.%S") backup ended! | cat &gt;&gt; $LOG</pre>
<p>Come si può vedere non ho fatto altro che specificare un po&#8217; di variabili ed aggiungere un file di log che ci permette di fare del debug sull&#8217;esecuzione di rsync.</p>
<p>La cartella locale è <em>/srv/samba/pub</em> e quella remota è <em>/srv/samba/backup</em> sul server2 che ha indirizzo <em>192.168.1.100</em>.</p>
<p>NB: lo script utilizza l&#8217;utente root su entrambi i server. <strong>Naturalmente tale opzione è sconsigliabile</strong> ma per il momento semplifica le cose!</p>
<p>Mettiamo lo script (che io ho chiamato semplicemente rsync_backup.sh) nella cartella</p>
<pre class="brush:bash">/usr/local/bin</pre>
<p>su server1 e rendiamolo avviabile</p>
<pre class="brush:bash">chmod u+x /usr/local/bin/rsync_backup.sh</pre>
<p>Ora se proviamo ad avviarlo</p>
<pre class="brush:bash">sh /usr/local/bin/rsync_backup.sh</pre>
<p><strong>ci verrà richiesta la password</strong> dell&#8217;utente root sul server2 (ed anche si accettare la chiave se è la prima volta che ci connettiamo in ssh a quella macchina).</p>
<p>Poichè però il nostro script dovrà essere eseguito automaticamente, <strong>non possiamo inserire a mano la password tutte le volte.</strong> E, prima che a qualcuno venga in mente, non vogliamo neanche far passare password in chiaro tutte le volte!</p>
<h2>Punto 2: SSH senza password</h2>
<p>Per automatizzare l&#8217;operazione di ssh tra il server1 ed il server2 dobbiamo fare in modo che il server2 si &#8220;fidi ciecamente&#8221; del server1 senza bisogno di una password. Come? <strong>Utilizzando una combinazione di chiavi pubbliche e private.</strong></p>
<p>Senza scendere nel dettaglio mi limiterò a ricordarvi (dato che voi già lo sapete) che posso distribuire liberamente la mia chiave pubblica e tenere al sicuro la mia chiave privata. Grazie alla chiave pubblica chiunque potrà essere sicuro della mia identità fin tanto che deterrò la chiave privata.</p>
<p>Sul <strong>server1</strong> generiamo la coppia di chiavi</p>
<pre class="brush:bash">ssh-keygen -t rsa</pre>
<p>lasciando generare le chiavi nella directory predefinita e non inserendo nessuna password quando ci viene chiesto.</p>
<p>Ora andiamo nella cartella <em>.ssh/</em> <strong>nella home del nostro utente</strong>, troveremo due files: <em>id_rsa</em> e <em>id_rsa.pub</em>.</p>
<p>Ovvero: <span style="color: #ff0000;">id_rsa = chiave privata</span> &amp; <span style="color: #00ff00;">id_rsa.pub = chiave pubblica</span></p>
<p><strong>Inviamo</strong> la nostra chiave pubblica al <strong>server2</strong></p>
<pre class="brush:bash">scp id_rsa.pub root@192.168.1.100:/root</pre>
<p>ora andiamo sul server2 nella cartella <em>/root</em> dove troviamo il file che abbiamo appena copiato. Adesso controlliamo di avere una cartella che si chiama &#8220;.ssh&#8221;, se non c&#8217;è creiamola. <strong>Poi mettiamo la chiave pubblica nel file &#8220;autorized_keys&#8221;</strong> all&#8217;interno della directory.</p>
<pre class="brush:python">mv id_rsa.pub .ssh/
cat id_rsa.pub &gt;&gt; authorized_keys
chmod 644 authorized_keys</pre>
<p>Ok! Adesso <strong>qualsiasi accesso in ssh dal server1 al server2 avverrà senza richiesta di password</strong> e quindi se proviamo a lanciare nuovamente il nostro script dal server1, la sincronizzazione avverrà senza richiesta di input.</p>
<p>NB. Come detto prima, eseguire queste operazioni con l&#8217;utente root è altissimamente sconsigliato!</p>
<h2>Punto 3: Crontab</h2>
<p>Crontab gestisce tutte le operazioni pianificate sul nostro server. L&#8217;utilizzo è semplicissimo:</p>
<pre class="brush:bash">0 4 * * * /usr/local/bin/rsync_backup.sh</pre>
<p>esegue il nostro script alle 4:00 di tutti i giorni.</p>
<p>Per maggiori dettagli su crontab vi rimando a <a href="http://it.wikipedia.org/wiki/Crontab">wikipedia</a>.</p>
<p>La stringa che abbiamo visto sopra <strong>andrà inserita all&#8217;interno della coda di crontab</strong>, tramite il comando</p>
<pre class="brush:bash">crontab -e</pre>
<p>si aprirà un editor (se è la prima volta ci chiede anche che editor usare, io consiglio <strong>vim</strong>) dove scrivere la stringa (in vim per modificare si preme &#8220;i&#8221;) e dopo averla salvata (premere &#8220;:x&#8221;) possiamo controllare che sia stata inserita tramite</p>
<pre class="brush:bash">crontab -l</pre>
<h2>Punto 4: Backup</h2>
<p>Mentre il nostro server1 si becca tutti gli accessi degli utenti, il <strong>server2 rimane dormiente tutto il giorno</strong> e viene utilizzato solo per qualche minuto verso le 4 di notte, quando riceve gli aggiornamenti.</p>
<p>Possiamo quindi pianificare su server2 in qualsiasi altro momento della giornata dei <strong>backup</strong> (totali o incrementali) da masterizzare o da copiare su altri dischi.</p>
<p>Ecco lo script che uso io (backup totali tramite tar)</p>
<pre class="brush:python">#!/bin/sh

#Author: fry@nerdsopolis.net
#Description: Script per la creazione di backup automatico e rimozione
#             vecchi backup.

#Variabili
LOG=/srv/samba/backup.log
TARLOG=/srv/samba/backup.tarlog
BASE=/srv/samba/backup/
DIR=pub/

#Inizio log
echo $(date +"%d/%m/%Y") | cat &gt;&gt; $LOG
echo $(date +"%H:%M.%S") backup started... | cat &gt;&gt; $LOG

#Creazione del backup
cd $BASE
tar -zcvf $(date +"%y%m%d-%H%M").tar $DIR | cat &gt; $TARLOG

#Eliminazione backup piu' vecchio
first=$(ls | grep tar | sort -n | head -1)
rm $first
echo $(date +"%H:%M.%S") deleted $first | cat &gt;&gt; $LOG

#Fine log
echo $(date +"%H:%M.%S") backup ended! | cat &gt;&gt; $LOG</pre>
<p>In questo caso il mio script crea un archivio tar compresso di tutta la cartella <em>/srv/samba/backup/pub</em> e <strong>successivamente cancella il backup più vecchio.</strong></p>
<p>Naturalmente questa tecnica ci consente di tenere in memoria (a seconda dello spazio sul disco) tanti backup che sono la &#8220;foto&#8221; della cartella in un determinato momento. Se ad esempio tengo 10 backup, lo script andrà a crearne uno nuovo e poi a cancellare il più vecchio, lasciandone sempre 10 sul mio disco. Per fare ciò però <strong>dovremo ricordarci di fargli fare prima 10 backup commentando per i primi 10 cicli la riga relativa alla cancellazione dei backup più vecchi.</strong></p>
<p>Anche questo script, come il precendete va messo in <em>/usr/local/bin</em> e chmoddato in modo da essere eseguibile.</p>
<p>Ora sempre tramite crontab possiamo fare in modo che lo script sia eseguito una volta alla settimana, la domenica notte:</p>
<pre class="brush:bash">0 4 * * 0 /usr/local/bin/backup.sh</pre>
<p>Fine. Se avete avuto la forza di seguire questo post fino a questa riga, <strong>significa che avete realemente bisogno di usare gli script per fare i backup.</strong></p>
<p>Quindi perchè non andate oltre e li personalizzate per fare altre funzioni? Si sa, uno script tira l&#8217;altro!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 3481px; width: 1px; height: 1px;">
<pre class="brush:bash">&amp;gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2009/10/02/backup-perfetti-con-rsync-e-ssh/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Il pinguino d&#039;oro</title>
		<link>http://www.nerdsopolis.net/wp/2009/05/22/il-pinguino-doro/</link>
		<comments>http://www.nerdsopolis.net/wp/2009/05/22/il-pinguino-doro/#comments</comments>
		<pubDate>Fri, 22 May 2009 07:55:50 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Cinema]]></category>
		<category><![CDATA[Tutti insieme appassionatamente]]></category>
		<category><![CDATA[concorso]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=1889</guid>
		<description><![CDATA[www.youtube.com/watch?v=OLPEkH6baE0 Porto grandi notizie! C&#8217;è un torneo che ci aspetta&#8230; Carissimi Nerds è arrivato il nostro momento, il Comune di Modena organizza un concorso per &#8220;micrometraggi&#8221; realizzati in ambiente Open Source. Il termine per la consegna è per il 4 ottobre 2009, trovate tutte le informazioni sul sito di netgarage. PS. dicesi &#8220;micrometraggio&#8221; un filmato [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=OLPEkH6baE0">www.youtube.com/watch?v=OLPEkH6baE0</a></p>
<p>Porto grandi notizie!</p>
<p>C&#8217;è un torneo che ci aspetta&#8230;</p>
<p><span id="more-1889"></span></p>
<div class="wp-caption aligncenter" style="width: 472px"><a href="http://www.comune.modena.it/netgarage/"><img title="Il pinguino doro" src="http://www.comune.modena.it/netgarage/img/pinguino-finito.jpg" alt="Concorso per la realizzazione di micrometraggi a tema libero in ambiente Open Source " width="462" height="182" /></a><p class="wp-caption-text">Concorso per la realizzazione di micrometraggi a tema libero in ambiente Open Source </p></div>
<p>Carissimi Nerds è arrivato il nostro momento, il Comune di Modena organizza un <strong>concorso per &#8220;micrometraggi&#8221; realizzati in ambiente Open Source</strong>.</p>
<p>Il termine per la consegna è per il 4 ottobre 2009, trovate tutte le informazioni sul sito di <a href="http://www.comune.modena.it/netgarage/">netgarage</a>.</p>
<p>PS. dicesi &#8220;micrometraggio&#8221; un filmato della durata <strong>massima</strong> di due minuti&#8230; sono un po&#8217; pochini!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2009/05/22/il-pinguino-doro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ebox + firefox 3.0 = bugs!</title>
		<link>http://www.nerdsopolis.net/wp/2009/04/02/ebox-firefox-30-bugs/</link>
		<comments>http://www.nerdsopolis.net/wp/2009/04/02/ebox-firefox-30-bugs/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 08:50:23 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[ebox]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=1671</guid>
		<description><![CDATA[Sembra incredibile. Uno passa le sue giornate a glorificare il software libero e poi scopre che proprio quel software funziona meglio con programmi non opensource. Cazzo. E&#8217; quello che mi è successo tentando di usare un programma di nome Ebox installato su Ubuntu Server 8.10. Ebox è una interfaccia &#8220;browser-based&#8221; che permette il monitoraggio e [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1678" class="wp-caption alignleft" style="width: 235px"><a href="http://nerdsopolis.files.wordpress.com/2009/04/sexy-firefox1.jpg"><img class="size-medium wp-image-1678" title="sexy-firefox1" src="http://nerdsopolis.files.wordpress.com/2009/04/sexy-firefox1.jpg?w=225" alt="La &quot;madrina&quot; della prossima festa di nerdsopolis!" width="225" height="300" /></a><p class="wp-caption-text">La &quot;madrina&quot; della prossima festa di nerdsopolis!</p></div>
<p>Sembra incredibile. Uno passa le sue giornate a glorificare il software libero e poi scopre che proprio quel software funziona meglio con programmi non opensource. Cazzo.</p>
<p>E&#8217; quello che mi è successo tentando di usare un programma di nome <strong>Ebox installato su Ubuntu Server 8.10.</strong></p>
<p>Ebox è una interfaccia &#8220;browser-based&#8221; che permette il monitoraggio e la gestione di un server attraverso una connessione https. Un sitema piuttosto comodo nel caso si abbiano diversi server da tenere sott&#8217;occhio e non si abbia voglia di aprire una console ssh tutte le volte.</p>
<p>Peccato che, fin dall&#8217;inizio questo casso di ebox mi abbia dato dei problemi.</p>
<p><span id="more-1671"></span>Leggendo la &#8220;<a href="https://help.ubuntu.com/8.10/serverguide/C/index.html">Ubuntu Server Guide</a>&#8221; sembra tutto facile&#8230; ed invece ho scoperto che:</p>
<ol>
<li>Ebox ha dei problemi di installazione sulle repo ufficiali e quindi bisogna <a href="http://ebox-platform.com/download/">aggiungere in apt una repo aggiuntiva</a> (eh vabè&#8230;) ricordandosi di mettere &#8220;intrepid&#8221; e non &#8220;hardy&#8221; come scritto sul sito ufficiale;</li>
<li>Bisogna <a href="http://gentoo-blog.de/?p=501">importare manualmente la chiave</a> della repo (non ho capito perchè..) per evitare un errore GPG;</li>
<li>All&#8217;avvio il modulo &#8220;logs&#8221; butta fuori una serie di errori python (e che cazzo);</li>
<li>Firefox 3.0 rileva come &#8220;untrusted&#8221; il certificato emesso dal server (guarda firefox che mi fido del mio server!);</li>
<li>Dulcis in fundo la connessione https funziona a singhiozzo con FF 3.0.</li>
</ol>
<p>Insomma una vera e propria palla. Per un software che viene direttamente consigliato nella guida ufficiale Ubuntu Server non c&#8217;è male&#8230;</p>
<p>Vabbè, venendo al nocciolo della questione, la cosa che più mi aveva fatto incazzare era proprio<strong> l&#8217;impossibilità di visualizzare Ebox tramite Firefox ed essere costretto ad usare Iexplorer</strong> (dove tutto andava e va a meraviglia).</p>
<p>Fortunatamente ho scoperto come (temporaneamente) risolvere il problema di <em>Connessione sicura fallita.</em></p>
<p>In primis bisogna <strong>creare una eccezione per accettare il certificato</strong> rilasciato da Ebox (si accede ad ebox aprendo l&#8217;indirizzo <em>https://indirizzo del server/ebox</em>)</p>
<ol>
<li><a href="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-1.gif"><img class="aligncenter size-medium wp-image-1672" title="ebox-firefox-1" src="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-1.gif?w=300" alt="ebox-firefox-1" width="300" height="161" /></a>Cliccare su &#8220;Oppure è possibile aggiungere un&#8217;eccezione&#8221;</li>
<li>Aggiungi eccezione&#8230;</li>
<li>Acquisisci certificato</li>
<li>Conferma eccezione di sicurezza</li>
</ol>
<div id="attachment_1673" class="wp-caption aligncenter" style="width: 310px"><a href="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-2.gif"><img class="size-medium wp-image-1673" title="ebox-firefox-2" src="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-2.gif?w=300" alt="ebox-firefox-2" width="300" height="292" /></a><p class="wp-caption-text">Vi faccio notare l&#39;entità degli errori: Sito errato e Identità sconosciuta!</p></div>
<p style="text-align:left;">A questo punto viene visualizzato l&#8217;errore qui sotto, oppure la pagina di login senza immagini e grafica. Se provate a ricaricare qualche volta la pagina appariranno a caso o la pagina di errore o la pagina &#8220;mal caricata&#8221;&#8230; bello no?</p>
<p style="text-align:left;"><a href="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-3.gif"><img class="aligncenter size-medium wp-image-1674" title="ebox-firefox-3" src="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-3.gif?w=300" alt="ebox-firefox-3" width="300" height="170" /></a></p>
<p class="thread-title">L&#8217;errore visualizzato si riferisce a &#8220;<em>ssl_error_rx_unexpected_change_cipher</em>&#8221; e <a href="http://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=73441&amp;forumId=1">a quanto pare</a> riguarda solo Windows XP.</p>
<p style="text-align:left;">Per risolvere quest&#8217;ultimo problema bisogna aprire &#8220;Strumenti&#8221;, poi &#8220;Opzioni&#8230;&#8221; e quindi &#8220;Avanzate&#8221;. A questo punto si deve disattivare il protocollo <strong>TLS 1.0</strong>:</p>
<p style="text-align:left;"><a href="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-4.gif"><img class="aligncenter size-medium wp-image-1675" title="ebox-firefox-4" src="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-4.gif?w=300" alt="ebox-firefox-4" width="300" height="267" /></a>Ora ricaricando nuovamente la pagina dovrebbe (alleluja!) comparire il login di Ebox.</p>
<p style="text-align:left;"><a href="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-5.gif"><img class="aligncenter size-medium wp-image-1676" title="ebox-firefox-5" src="http://nerdsopolis.files.wordpress.com/2009/04/ebox-firefox-5.gif?w=300" alt="ebox-firefox-5" width="300" height="224" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2009/04/02/ebox-firefox-30-bugs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Spostare db mysql senza dump</title>
		<link>http://www.nerdsopolis.net/wp/2009/01/09/spostare-db-mysql-senza-dump/</link>
		<comments>http://www.nerdsopolis.net/wp/2009/01/09/spostare-db-mysql-senza-dump/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 08:59:29 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[guide tecniche]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ripristino]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=1205</guid>
		<description><![CDATA[Mi sono trovato nella condizione di dover ripristinare una serie di database mysql da un server completamente rotto ad uno nuovo. Per completamente rotto intendo che non si accendeva proprio più.. ma per fortuna l&#8217;harddisk era ancora perfettamente funzionante. Naturalmente il dump più recente che avevo fatto risaliva al 1980.. L&#8217;operazione di spostamento del db [...]]]></description>
			<content:encoded><![CDATA[<p>Mi sono trovato nella condizione di dover ripristinare una serie di database mysql da un server completamente rotto ad uno nuovo. Per completamente rotto intendo che non si accendeva proprio più.. ma per fortuna l&#8217;harddisk era ancora <strong>perfettamente funzionante</strong>.</p>
<p>Naturalmente il dump più recente che avevo fatto risaliva al 1980..</p>
<p><span id="more-1205"></span>L&#8217;operazione di spostamento del db <strong>è comunque estremamamente facile</strong>: tutti i db e le tabelle sono in realtà memorizzati in directory e files.</p>
<p>Ecco come fare:</p>
<ol>
<li>cp -R backup/var/lib/mysql/miodb /var/lib/mysql/</li>
<li>cd /var/lib/mysql</li>
<li>chown -R mysql.mysql miodb/</li>
</ol>
<p>Nota bene:</p>
<ul>
<li>Il percorso dove mysql mette i propri files potrebbe essere diverso a seconda della distribuzione</li>
<li>Io ho precedentemente montato il vecchio harddisk nella cartella /backup</li>
<li>Ho spostato solo la cartella &#8220;miodb&#8221; e tutto il suo contenuto, attenzione a non spostare i files nella radice principale di mysql perchè potrebbero creare dei conflitti con quelli nuovi.</li>
<li>Cambiare i permessi SOLO alla cartella che si è copiato. Per motivi di sicurezza le altre cartelle devono rimanere intatte.</li>
</ul>
<p>Fatto. Ora aprendo phpmyadmin il buon vecchio database è al suo posto sano e salvo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2009/01/09/spostare-db-mysql-senza-dump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samba: configurazione perfetta</title>
		<link>http://www.nerdsopolis.net/wp/2008/12/12/samba-configurazione-perfetta/</link>
		<comments>http://www.nerdsopolis.net/wp/2008/12/12/samba-configurazione-perfetta/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 16:56:53 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[condivisione windows]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=912</guid>
		<description><![CDATA[Brevissimo post per &#8220;memorizzare&#8221; una configurazione che ho creato su di un server e che mi soddisfa più che pienamente. Così d&#8217;ora in poi posso ricopiarla! Server: Ubuntu 8.10 Intrepid Ibex Disco 1: Disk /dev/sda: 41.1 GB Device Boot      Start         End      Blocks     Id  System /dev/sda1 *        1        4905    39399381   83  Linux /dev/sda2      4906        4998     747022+   [...]]]></description>
			<content:encoded><![CDATA[<p>Brevissimo post per &#8220;memorizzare&#8221; una configurazione che ho creato su di un server e che mi soddisfa più che pienamente. Così d&#8217;ora in poi posso ricopiarla!</p>
<p>Server: Ubuntu 8.10 Intrepid Ibex</p>
<p><span id="more-912"></span></p>
<p>Disco 1:</p>
<blockquote><p>Disk /dev/sda: 41.1 GB<br />
Device Boot      Start         End      Blocks     Id  System<br />
/dev/sda1 *           1        4905    39399381   83  Linux<br />
/dev/sda2      4906        4998     747022+   5    Extended<br />
/dev/sda5      4906        4998      746991   82    Linux swap</p></blockquote>
<p>Disco 2:</p>
<blockquote><p>Disk /dev/sdb: 80.0 GB<br />
Device Boot      Start         End      Blocks     Id  System<br />
/dev/sdb1                1        5223    41953716    c  W95 FAT32 (LBA)<br />
/dev/sdb2      5224        9729    36194445    c  W95 FAT32 (LBA)</p></blockquote>
<p><span style="color:#ff0000;">Fstab:</span></p>
<blockquote><p># /dev/sdb1<br />
UUID=4939-5ABE  /srv/samba/pub1     vfat    user,rw,umask=000       0      0<br />
# /dev/sdb2<br />
UUID=4939-5AC1  /srv/samba/pub2     vfat    user,rw,umask=000       0       0</p></blockquote>
<p>Come si vede, il primo disco è di sistema. Il secondo ha due partizioni che corrispondono a due distinte condivisioni, montate sotto /srv/samba.</p>
<p>Le directory dentro cui montare pub1 e pub2 le ho create usando:</p>
<blockquote><p>#mkdir -p /srv/samba/pub1<br />
#chown nobody.nogroup /srv/samba/pub1/</p></blockquote>
<p><span style="color:#ff0000;">Samba:</span></p>
<p>Ho creato il file smb.conf.master facendo:</p>
<blockquote><p>#cp smb.conf smb.conf.master</p></blockquote>
<p>E ho modificato smb.conf.master con vim inserendo i seguenti parametri dentro a [global]:</p>
<blockquote><p>workgroup = WORKGROUP<br />
server string = %h (Ubuntu 8.10)<br />
security = share<br />
map to guest = bad user<br />
usershare allow guests = yes</p></blockquote>
<p>Poi ho inserito le cartelle condivise:</p>
<blockquote><p>[Pub1]<br />
comment = Cartella Pubblica 1<br />
path = /srv/samba/pub1<br />
browseable = yes<br />
guest ok = yes<br />
read only = no<br />
create mask = 0755</p></blockquote>
<p>Ho salvato il file e poi ho lanciato il comando:</p>
<blockquote><p>#testparm -s smb.conf.master &gt;smb.conf</p></blockquote>
<p>(Naturalmente ho riavviato il pc dopo aver creato/modificato le partizioni, aggiornato i mounts e riavviato samba)</p>
<p>Funziona alla grande, senza nessuna pippa di autenticazione da parte Windows.</p>
<p>In merito suggerisco la lettura della <a href="https://help.ubuntu.com/8.10/serverguide/C/samba-fileserver.html">guida</a> di Ubuntu Server relativa a Samba.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2008/12/12/samba-configurazione-perfetta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Videoregistratolinux</title>
		<link>http://www.nerdsopolis.net/wp/2008/08/28/videoregistratolinux/</link>
		<comments>http://www.nerdsopolis.net/wp/2008/08/28/videoregistratolinux/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 13:06:35 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Made by nerdsopolis]]></category>
		<category><![CDATA[pvr]]></category>
		<category><![CDATA[recorder]]></category>
		<category><![CDATA[registrazione]]></category>
		<category><![CDATA[scheda tv]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[v4l2]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=336</guid>
		<description><![CDATA[Dopo giorni di smanettamenti vari con la scheda tv analogica, in questo post vi propongo un piccolo script che mi sono creato per poter registrare e programmare registrazioni dalla tv tramite mencoder. Insomma mi sono creato un piccolo videoregistratore digitale, molto più comodo del caro vecchio VHS! Ma meno figo del betamax&#8230; Introduzione Prima di [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nerdsopolis.files.wordpress.com/2008/08/betamax.jpg"><img class="alignleft size-full wp-image-350" style="border:0 none;margin-left:2px;margin-right:2px;" src="http://nerdsopolis.files.wordpress.com/2008/08/betamax.jpg" alt="" width="274" height="384" /></a></p>
<p>Dopo giorni di smanettamenti vari con la scheda tv analogica, in questo post vi propongo un piccolo script che mi sono creato per poter registrare e programmare registrazioni dalla tv tramite mencoder. Insomma mi sono creato un piccolo videoregistratore digitale, molto più comodo del caro vecchio VHS! Ma meno figo del betamax&#8230;</p>
<h2>Introduzione</h2>
<p>Prima di tutto premetto che io in questo momento sul mio pc con ubuntu (hardy) per guardare normalmente la tv uso <a href="http://tvtime.sourceforge.net/" target="_blank">tvtime</a> che è davvero un&#8217;ottimo programma. Semplice da usare, con un bel menu OSD e una discreta dose di impostazioni smanettabili. Il limite però è che non registra e non fa nessun tipo di timeshifting! Nel caso voi abbiate (a differenza di me) una scheda tv DVB-T o DVB-S allora vi consiglio di usare <a href="http://kaffeine.kde.org/" target="_blank">Kaffeine</a>. Prima che si rompesse la mia, lo usavo ogni giorno e l&#8217;ho trovato veramente completo: EPG, registrazione immediata, programmata e timeshifting tutto in uno. Dato però che Kaffeine non sembra digerire la mia nuova (in realtà vecchia) scheda tv analogica, sono dovuto passare ad altro!</p>
<p>Una soluzione naturalmente da tenere in considerazione è quella di usare <a href="http://www.mythtv.org/" target="_blank">MythTV</a>. Per chi ancora (ma dove vivi?!) non lo sapesse MythTV è un programma completissimo che permette di creare un sistema completo per la visione della tv, con registrazione e timeshifting, la visione di divx/xvid, la navigazione su internet e tanto altro. Il tutto con un semplice telecomando. MythTV è sicuramente la soluzione più completa per chi vuole dedicare un pc all&#8217;uso specifico come PVR (una sorta di clone del TiVo o un Windows MCE venuto bene), ma nel caso in cui l&#8217;uso della tv è sporadico e la registrazione avviene solo in certe occasioni, il programma risulta a mio parere un po&#8217; troppo pesante ed invasivo (mille pacchetti e configurazioni eterne).</p>
<p><span id="more-336"></span></p>
<h2>Requisiti</h2>
<p>Lo script (recorder.sh) in pratica fa due cose: registra immediatamente dalla scheda tv oppure programma una registrazione futura.</p>
<p>I requisiti per poter usare questo script sono abbastanza semplici (per uno che usa la scheda tv sulla propria linux box): mencoder (che fa parte di <a href="http://www.mplayerhq.hu/" target="_blank">mplayer</a> ed è un favoloso compressore/decompressore/convertitore) e scantv (che fa parte di <a href="http://linux.bytesex.org/xawtv/" target="_blank">xawtv</a>).</p>
<h2>Configurazione e uso</h2>
<p>Veniamo dunque al sodo.</p>
<p>Scantv è un semplice script che esegue, come si intuisce dal nome, una scansione sulla tabella delle frequenze o su tutte le frequenze alla ricerca dei canali tv e li sintonizza in modo che possano essere usati dal software Xawtv che è invece un (piuttosto bruttino e datato) visualizzatore di tv.</p>
<p>Il primo step è dunque (nel caso non l&#8217;abbiate già fatto) creare una tabella dei canali:</p>
<blockquote><p>$ scantv -C /dev/vbi0 -o /home/francesco/.xawtv</p></blockquote>
<p>Da notare che io devo usare &#8220;-C /dev/vbi0&#8243; perchè di default scantv cerca solo su &#8220;/dev/vbi&#8221;. E che &#8220;/home/francesco&#8221; è la MIA home&#8230; metteteci la vostra! Ah, se volete una ricerca più completa usate anche il comando &#8220;-a&#8221;&#8230; però abbiate pazienza perchè così ci mette una vita!</p>
<p>Una volta conclusa la ricerca, aprendo il file .xawtv troverete una voce che collega un canale (in alcuni casi con il nome) ad una frequenza o un canale. Il canale non è altro che una frequenza prestabilita su una tabella che varia a seconda del paese. In linea di massima i canali tv sono sempre su un canale preciso. Se trovate la frequenza probabilmente si tratta di un canale locale o di qualcosa con una ricezione veramente pessima!</p>
<p>Ora vi consiglio di editare il file per eliminare i canali inutili e per mettere i nomi a quelli che non l&#8217;hanno. Per farlo vi basta usare un normale editor per le modifiche sul file .xawtv e xawtv per vedere il risultato. Ora passiamo alla registrazione!</p>
<p>NB. Purtroppo una limitazione piuttosto grave del sistema è che la scheda tv è accessibile solo da un processo per volta. Ciò significa che, se state guardando un canale (ad es. su tvtime) e fate contemporaneamente partire la registrazione (su un altro canale o anche sullo stesso), l&#8217;ultimo processo avviato esclude il precedente. Proprio come con un videoregistratore non possiamo cambiare canale mentre registriamo! E per vedere mentre si registra? Bè basta aprire il file video che il nostro fido recorder.sh sta creando con un player qualsiasi. In questo modo abbiamo anche una sorta di timeshifting dato che possiamo metterlo in pausa, mandarlo indietro o avanti (compatibilmente con la linea temporale!!) e farlo ripartire quando vogliamo mentre recorder.sh continua a salvare il flusso video.</p>
<p>L&#8217;uso dello script è piuttosto semplice:</p>
<blockquote><p>$ ./recorder.sh [channel] [seconds] [options] [start]</p></blockquote>
<p>Dove &#8220;channel&#8221; è il canale che trovate nel file che abbiamo creato prima (.xawtv), &#8220;seconds&#8221; sono i secondi della durata della registrazione, &#8220;start&#8221; è l&#8217;ora in HH:MM di inizio della registrazione. Come opzioni è possibile specificare &#8220;-f&#8221; per aprire immediatamente il file in corso di registrazione in mplayer, &#8220;-p&#8221; per programmare una registrazione futura (in tal caso è obbligatorio specificare anche &#8220;start&#8221;). Nel caso in cui &#8220;-p&#8221; non sia specificato la registrazione parte immediatamente, altrimenti crea una voce &#8220;cron&#8221; tramite il comando &#8220;at&#8221; che verrà eseguita nel momento prestabilito. Ad esempio:</p>
<blockquote><p>$ recorder.sh 56 3600 -p 12:50</p></blockquote>
<p>Metterà in coda una registrazione per le 12:50 sul canale 56 (che da me è Canale 5) della durata di 3600 secondi = 1 ora.</p>
<p>Lo script provvederà a creare un file, il cui nome è dato dal canale e dalla data e l&#8217;ora di inizio della registrazione, compresso in divx con l&#8217;audio in mp3. E il tutto in maniera automatica!</p>
<h2>Lo script nel dettaglio</h2>
<p>Naturalmente non mi aspetto che lo script funzioni o vi vada bene così com&#8217;è. Il mondo di linux, si sa, è bello perchè vario! Quindi a seconda della distro che state usando qualche impostazione potrebbe essere diversa&#8230; oppure la vostra scheda di acquisizione potrebbe funzionare in modo diverso&#8230; oppure ancora potreste volere aggiungere o togliere delle opzioni che io uso.</p>
<p>Dov&#8217;è il problema?! Basta smanettare sul codice!</p>
<p>In primo luogo premetto che alcune parti di questo script le ho fatte ispirandomi ad uno script simile che ho trovato da qualche parte su un forum (scusate ma non trovo più il link). Io però ho migliorato alcuni aspetti della compressione del video ed ho aggiunto una serie di opzioni, come il fatto di poter programmare la registrazione.</p>
<p>E&#8217; molto importante controllare che i riferimenti alla scheda video e a quella audio siano corretti. Nel mio caso l&#8217;output video arriva da &#8220;/dev/video0&#8243; e il sintonizzatore si trova su &#8220;/dev/vbi0&#8243;. Può darsi che a seconda della distro o a seconda del modulo usato per la vostra scheda queste devices siano in luoghi diversi. Potete controllare direttamente tramite mplayer se state usando gli indirizzi corretti. Ecco come:</p>
<blockquote><p>$ mplayer tv:// -tv driver=v4l2:input=1:device=/dev/video0:norm=PAL</p></blockquote>
<p>Un altro aspetto importante da considerare è l&#8217;input usato. Nel mio caso la scheda fornisce 3 input. Il primo (0) è l&#8217;ingresso composito, il secondo e il terzo (1 e 2) sono l&#8217;ingresso TV. Se selezionate un input sbagliato dovreste vedere nero o vedere del rumore video. Una modifica che probabilmente aggiungerò in futuro al mio script sarà la possibilità di impostare l&#8217;input in modo da poter usare la scheda per convertire vecchi vhs in digitale.</p>
<p>La seconda cosa importante da configurare (e che mi ha fatto impazzire) è l&#8217;imput audio. Ci sono due tipi di schede tv. Quelle che mandano l&#8217;audio direttamente su una periferica digitale e quelle che invece usano un cavetto di bypass. Di solito quest&#8217;ultime hanno un cavetto &#8220;jack maschio &#8211; jack maschio&#8221; che va collegato all&#8217;output della scheda tv e ad un input della scheda audio. In altri casi invece (come nella mia scheda) il bypass è interno e viene usato un cavetto che entra in uno degli input CD della scheda audio.</p>
<p>Nel mio caso se apro &#8220;tvtime&#8221;, l&#8217;audio viene direttamente dall&#8217;ingresso CD della scheda audio. Quindi devo intercettarlo dalla scheda audio attraverso ALSA per poterlo registrare. Una prova che potete fare per vedere se anche la vostra scheda funziona come la mia è aprire un canale qualsiasi in &#8220;tvtime&#8221; o in &#8220;xawtv&#8221; (o simili) e mettere in muto il canale CD nel mixer. Non dovreste sentire più nulla dalla tv.</p>
<p>Ora lanciate questo comando:</p>
<blockquote><p># aplay /dev/dsp1</p></blockquote>
<p>Dove naturalmente &#8220;dsp1&#8243; potrebbe essere nel vostro caso &#8220;dsp0&#8243; o &#8220;dsp&#8221;&#8230;. Comunque dovreste sentire in qualità abbastanza pessima l&#8217;audio della vostra scheda tv. Bene quell&#8217;indirizzo corrisponde a &#8220;hw.[x]&#8221; in alsa.</p>
<p>Ok adesso vediamo lo script:</p>
<pre>#!/bin/bash

echo "Recorder.sh a simple script for mencoder - version 1.2 (05/10/08)"
echo "Made by Ermete Trismegisto (www.nerdsopolis.org)"
echo "-------------------------------------"

if [ ! $1 ] &amp; [ ! $2 ]
then
	echo "Usage: $0 [channel] [seconds] [option] [start]"
        echo "-------------------------------------"
	echo "Channel = channel number -&gt; see scantv output"
	echo "Seconds = record lenght in seconds"
	echo "Option: -f = follow (see the file while recording)"
	echo "	      -p = planned (plan a recording)"
	echo "Start = time in HH:MM of start"
        echo "-------------------------------------"
	echo "Example: recorder.sh 56 3600 12:50"
	echo "It will plan a recording of 1 hour at 12:50 on channel 56"
        echo "-------------------------------------"
        exit
fi

WIDTH=640
HEIGHT=480
MENCODER=/usr/bin/mencoder
AT=/usr/bin/at
FILE="capture_${1}_$(date +%Y-%m-%d_%H:%M:%S).avi"
AUDIO="-oac mp3lame -lameopts cbr:br=128:mode=0"
VIDEO="-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1500:vhq -vf pp=lb"
DSP="alsa:adevice=hw.1"
TV=" -tv driver=v4l2:width=$WIDTH:height=$HEIGHT:input=1:device=/dev/video0:audiorate=32000:norm=PAL:channel=${1}:$DSP"
if [ "$3" = "-f" ]; then
	if [ $4 ]; then
		echo "ERROR: Start time is valid only for -p option"
		exit
	fi
	echo "Recording on channel ${1} for ${2} seconds... opening player"
	amixer set CD mute
	$MENCODER tv:// $TV $VIDEO $AUDIO -endpos ${2} -ffourcc divx -o $FILE &amp; sleep 5 ; gmplayer $FILE
	amixer set CD unmute
	exit
fi
if [ "$3" = "-p" ]; then
	if [ ! $4 ]; then
		echo "ERROR: Start time missing"
		exit
	fi
	echo "Planned recording on channel ${1} at ${4} for ${2} seconds"
	echo amixer set CD mute | at ${4}
	echo $MENCODER tv:// $TV $VIDEO $AUDIO -endpos ${2} -ffourcc divx -o $FILE | at ${4}
	exit
fi
if [ !$3 ]; then
	echo "Instant recording on channel ${1} for ${2} seconds"
	amixer set CD mute
	$MENCODER tv:// $TV $VIDEO $AUDIO -endpos ${2} -ffourcc divx -o $FILE
	amixer set CD unmute
	exit
fi</pre>
<p>Per poterlo usare vi basta copiarlo e incollarlo in file di testo e salvarlo come &#8220;recorder.sh&#8221;. Naturalmente ricordatevi dove lo salvate per poi poterlo eseguire!</p>
<p>Le impostazioni per la compressione dell&#8217;audio sono dentro alla variabile &#8220;AUDIO&#8221; mentre quelle per il video nella variabile &#8220;VIDEO&#8221;. Poi c&#8217;è il &#8220;DSP&#8221; (che dicevamo è la periferica audio) e &#8220;TV&#8221; che è la scheda da cui acquisire. Qualunque modifica allo script andrebbe fatta dunque in queste 4 variabili.</p>
<p>Come dicevo all&#8217;inizio, per finire, lo script può registrare istantaneamente oppure, se è stato specificato un&#8217;orario, mettere in coda l&#8217;azione usando il comando AT. Se viene impostata un&#8217;azione futura, è sempre possibile controllare che l&#8217;azione sia stata correttamente messa in coda da AT digitando:</p>
<blockquote><p>$ atq</p></blockquote>
<p><span style="text-decoration:line-through;">Ci sono alcune piccole cose che ho intenzione di modificare in questo script, come ad esempio la possibilità di scrivere la durata del programma in minuti o ore (adesso accetta solo secondi, quindi 1 ora è 3600 secondi) e la possibilità di fargli aprire direttamente il player per seguire la registrazione. Un&#8217;altra funzione utile potrebbe essere quella di fargli mettere in &#8220;mute&#8221; il canale del CD IN della scheda audio. Infatti adesso tutte le volte che verrà avviato mencoder partirà anche l&#8217;audio proveniente dalla TV.</span></p>
<p>Con l&#8217;aggiornamento alla versione 1.1 ho aggiunto due funzioni: la prima (-f) che apre automaticamente gmplayer sul file che si sta salvando; la seconda (attraverso amixer) che mette in muto il canale CD della scheda audio. In questo modo non si sente la tv mentre la si registra!</p>
<p>Quindi un uso tipico, in perfetto stile timeshifting è:</p>
<blockquote><p>./recorder.sh 25 3600 -f</p></blockquote>
<p>In questo modo recorder.sh farà partire la registrazione sul canale 25 per una durata massima di 1 ora e provvederà ad aprire mplayer e selezionare il file che si sta creando. Ora potete mettere in pausa la registrazione e riprenderla liberamente mentre lo script continua a registrare.</p>
<p><span style="text-decoration:line-through;">Se viene programmata una registrazione, ad esempio di notte, ricordatevi sempre di spegnere le casse del PC altrimenti potrebbe venirvi un infarto quando parte l&#8217;audio a tutto volume!</span></p>
<h2>Conclusioni</h2>
<p>Nel caso abbiate proposte di modifica o suggerimenti per farlo funzionare meglio, siate liberi di lasciare dei commenti!</p>
<p>Ah, l&#8217;ispirazione di questo script mi è stata data da questo ottimo post: <a href="http://doppiavu.wordpress.com/2007/11/21/trasformare-il-pc-in-un-videoregistratore/" target="_blank">link</a>.</p>
<p><span style="color:#ff0000;">[post originale: 28 agosto 2008 - aggiornato il 10 ottobre 2008]</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2008/08/28/videoregistratolinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Massimo Dolore</title>
		<link>http://www.nerdsopolis.net/wp/2008/08/08/massimo-dolore/</link>
		<comments>http://www.nerdsopolis.net/wp/2008/08/08/massimo-dolore/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 09:56:58 +0000</pubDate>
		<dc:creator>fry</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[cedega]]></category>
		<category><![CDATA[directx]]></category>
		<category><![CDATA[emulazione]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[max payne]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://nerdsopolis.wordpress.com/?p=252</guid>
		<description><![CDATA[Preso dall&#8217;euforia del vuoto cosmico di Modena in questi giorni, ho ripreso un discorso che avevo abbandonato qualche anno fa grazie ad un ottimo programma di nome Cedega. Molti di voi probabilmente lo conoscono, si tratta di un software di emulazione del sottosistema windows in ambiente linux. In pratica premette di emulare in tutto e [...]]]></description>
			<content:encoded><![CDATA[<p>Preso dall&#8217;euforia del vuoto cosmico di Modena in questi giorni, ho ripreso un discorso che avevo abbandonato qualche anno fa grazie ad un ottimo programma di nome <a href="http://www.transgaming.com/">Cedega</a>.</p>
<p>Molti di voi probabilmente lo conoscono, si tratta di un software di emulazione del sottosistema windows in ambiente linux. In pratica premette di emulare in tutto e per tutto le componenti audio e video di un pc win e di giocare perfettamente ai giochi basati sulle DirectX anche in linux. Comodo no? Non c&#8217;è neanche bisogno di creare una macchina virtuale.</p>
<p>Ma veniamo all&#8217;oggetto del mio post. Negli ultimi giorni qui a nerds city abbiamo parlato molto di videogames e quindi mi sento in dovere di parlarvi di quello che, per me, è in assoluto il miglior videogioco dell&#8217;era moderna (termine vago che indica l&#8217;avvento di windows e delle directx).</p>
<p>Penso che sia il migliore per una serie di motivi: la storia, lo stile narrativo, la grafica e la giocabilità.</p>
<p style="text-align:center;"><a href="http://nerdsopolis.files.wordpress.com/2008/08/max_payne_2001_graphic_novel_01.jpg"><img class="size-full wp-image-253 aligncenter" src="http://nerdsopolis.files.wordpress.com/2008/08/max_payne_2001_graphic_novel_01.jpg" alt="" width="500" height="306" /></a></p>
<p><span id="more-252"></span>La storia, abbastanza comune in stile noir, narra a grandi linee di un investigatore che cerca di farsi giustizia in una New York corrotta. I particolari sono però gustosi: una droga di nome valchiria che ci regala momenti di psichedelia, continui flashback alla morte della famiglia del protagonista, palazzi totalmente disabitati pieni di malavitosi, una tempesta di neve&#8230; tutte cose che sicuramente, se ci avete giocato, vi avranno fatto capire di cosa si tratta.</p>
<p><a href="http://nerdsopolis.files.wordpress.com/2008/08/max_payne1.jpg"><img class="alignright size-medium wp-image-254" src="http://nerdsopolis.files.wordpress.com/2008/08/max_payne1.jpg?w=300" alt="" width="300" height="225" /></a></p>
<p>A differenza di moltissimi altri videogiochi del genere la storia non viene raccontata (nei momenti di non-gioco) da filmati, sono invece dei fumetti &#8220;interpretati&#8221; con suoni e voci che ci danno tutte le informazioni necessarie a seguire la narrazione. Fantastico! Anche perchè i fumetti sono veramente belli in stile un po&#8217; &#8220;grunge&#8221; e le voci sono interpretate perfettamente da attori. Come dimenticare la voce del protagonista doppiata da <a href="http://www.giorgiomelazzi.it" target="_blank">Giorgio Melazzi</a> (che molti conoscono anche come comico di Zelig).</p>
<p><a href="http://nerdsopolis.files.wordpress.com/2008/08/max_payne1.jpg"><br />
</a></p>
<p>La grafica era veramente favolosa, soprattuto nel sequel. Ricca di dettagli (si può sparare a qualunque oggetto, spostarlo, aprirlo) e di effetti di luce, il gioco rimane in mente soprattutto per qualche trucchetto usato per arricchire la narrazione. Indimenticabile la scena in cui per effetto di valchiria si entra in un tunnel che si allunga man mano che si cammina!</p>
<p>La giocabilità è secondo me al top per un videogame in terza persona. Prendendoci u<a href="http://nerdsopolis.files.wordpress.com/2008/08/max-payne.jpg"><img class="size-medium wp-image-255 alignright" src="http://nerdsopolis.files.wordpress.com/2008/08/max-payne.jpg?w=300" alt="" width="300" height="225" /></a>n po&#8217; la mano, usando la bullettime, si riescono a fare delle mosse favolose. A volte si entra in una stanza e si riescono ad uccidere 5 nemici senza neanche venir colpiti una volta&#8230; Unico punto dolente è che dopo un po&#8217; il gioco risulta troppo guidato. La porta da aprire è sempre una sola, la strada da seguire pure. Lasciatemi sognare per un attimo un <a href="http://it.wikipedia.org/wiki/Max_Payne" target="_blank">Max Payne</a> dove si può liberamente girare per il livello in stile Hitman&#8230;. Ops! Ho detto il nome del gioco&#8230; ma ormai lo avevate capito, no?!</p>
<p>Chiudo questa breve recensione con una notizia che ho appreso proprio cercando un po&#8217; di link per il gioco. Quest&#8217;anno uscirà probabilmente (si parla di ottobre) il film di Max Payne&#8230; non vi siete anche voi un po&#8217; rotti le palle di vedere film basati sui videogiochi? Io decisamente si.</p>
<p>Evviva i divx/xvid (e chi vuol intendere intenda).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nerdsopolis.net/wp/2008/08/08/massimo-dolore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

