Ho sempre pensato che scrivere su un blog sia una grossa perdita di tempo e ho sempre ritenuto che chi scrive su un blog lo fa perché non sa come passare il tempo.

In realtà comunicare bene è importante tanto quanto saper fare le cose bene. Si possono realizzare i migliori prodotti del mondo, ma se nessuno sa che esistono e cosa possono fare nessuno mai li comprerà.

I recently installed a webapp which uses tomcat and jasper on one of my server. Everything worked well until a template used some special chars, I got the ‘?’ chars which indicate the typical encoding issue.

Everything seemed correct, DB in UTF-8, virtual machine started with -Dfile.encoding=UTF-8, application in UTF-8, data files in UTF-8.

After an hour spend in all these checks I tried an “export LANG=it_IT.utf8” in my linux environment. Everything worked well.

Where is the point? Very simple, some jar don’t look in the JVM system properties but look for the native locale in the linux enviroment. This causes portability issues and lost of time in solving stupid problems.

Since the last six months I have an issue with my NetworkManager, sometimes it doesn’t wakup correctly after a standby or suspend.  After some test I found that the problem comes out each time the suspend/standby procedure freezes the system and I have to manually shutdown. To make the NetworkManager the only way is to standby and wakup my laptop.

After several tests I found out what happens and a small workarround.

On my laptop I have an hardware issue with my webcam, the cable which connects the camera to the motherboard throught the monitor is a little bit loose, so sometimes the camera generates an error. This error causes a seg fault in the linux kernel. This seg fault prevents the webcam module to stanby corretly and my laptop freezes during standby cycle. This happens after the NetworkManger has entered the standby cycle in which the network gets disabled.

Now I have to manually power off the laptop, and turning the laptop on again doesn’t run the wakeup cycle,  in the wakup cycle the NetworkManager enables the network again. So my network remains disabled until I run the wakeup cycle.

The first workarround is to standby/wakup the laptop, the second workarround is to run the wakeup command manually:

sudo dbus-send –print-reply –system –dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.wake

I thing this issue comes out each time a suspend/standby isn’t followed by a wakeup (ex: battery runs out) .

Hope this helps others :)

Configurazione generale della rete

Ipotizziamo una rete interna che utilizza gli IP 192.168.6.X. Nella rete interna abbiamo un router al indirizzo 192.168.6.1 e un server DNS per la intranet all’indirizzo 192.168.6.2.

Il server che vogliamo utilizzare per la VPN utilizza l’IP interno 192.168.6.102 ed è visibile dall’esterno su un ip pubblico a cui è assegnata una voce sul DNS pubblico es: vpnserver.mylan.com

Una considerazione prima di procedere. A chi si collega alla rete tramite VPN viene assegnato un IP, occorre quindi prestare attenzione con non vi siano problemi di instradamento o conflitto di IP. Per la VPN scegliamo quindi di usare un set di IP completamente diverso rispetto a quelli della intranet, es 10.8.0.X.

Sul router occore quindi aggiungere una route sul router:

route add 10.8.0.0 192.168.7.102

Configurazioni sul server VPN (vpnserver.mylan.com 192.168.7.102)

modprobe tun
echo "tun" >> /etc/modules
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A INPUT -p udp –dport 1194 -s 10.0.0.0/24 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
Sul router

Certificati e chiavi

Occore generare una serie di certificati e chiavi. A meno che non abbiate un contratto con un Certification Authority occorre generare una chiave e un certificato ‘self-signed’ anche per la Certification autority.

Certificati CA

mkdir ca
openssl genrsa -out ca/ca.key
openssl req -new -key ca/ca.key -out ca/ca.req
openssl x509 -req -in ca/ca.req -signkey ca/ca.key -out ca/ca.cert
Cerficati Server
mkdir server
openssl genrsa -out server/server.key
openssl req -new -key server/server.key -out server/server.req
openssl x509 -req -in server/server.req -CA ca/ca.cert -CAkey ca/ca.key -CAcreateserial -out server/server.cert
openssl dhparam -out server/dh1024.pem 1024

Certificati client

mkdir client
openssl genrsa -out client/client.key
openssl req -new -key client/client.key -out client/client.req
openssl x509 -req -in client/client.req -CA ca/ca.cert -CAkey ca/ca.key -CAcreateserial -out client/client.cert

Generazione chiavi TSL

openssl genrsa -out server.key
openssl req -new -key server.key -out rich.ser
openssl x509 -req -in rich.ca -signkey server.key –out server.cert
openssl x509 -req -in rich.ser -CA ca.cert -CAkey ca.key -CAcreateserial -out ser.cert
openssl dhparam -out dh.pem 1024
Per ogni client:
openssl genrsa -out client.key
openssl req -new -key client.key -out rich.cli

Server.conf

port 1194
proto udp
dev tun
ca ./ca/ca.cert
cert ./server/server.cert
key ./server/server.key
dh ./server/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.7.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 4
tls-server

Client.conf

client
dev tun
proto udp
remote 89.96.215.134
resolv-retry infinite
nobind
persist-key
persist-tun
ca ./ca/ca.cert
cert ./client/client-luigi.cert
key ./clinet/client-luigi.key
comp-lzo
verb 4
port 1194
Uno dei benefici nell’utilizzo di Linux è quello di poter intervenire in modo semplice su tutto il sistema e aggiungere molte interazioni e modifiche al sistema operativo per rendere l’impianto Home Theater adeguto ad un uso quotidiano.

Uno di questi interventi è la rimozione di tutto ilo Desktop Manager e l’uso della GU§i di mythtv come unico frontend, pur mantenendo la possibilità di passare a un altro dektop manager per attività di manutenzione.

Ecco i semplici passi per la consentire l’avvio di Mythtv come unico desktop.

1) Impostare il logon automatico sulla propria distribuzione.

2) Creare il file mythtv.desktop nella cartella: /usr/share/xsessions:

[Desktop Entry]
Encoding=UTF-8
Name=MYTHTV on openbox
Comment=This will start openbox and mythtv in fullscreen
Exec=/usr/bin/mythtv-openbox
Icon=
Type=Application

3) Creare il file /usr/bin/mythtv-openbox

#!/bin/bash
#/home/htpc/bin/imonserver &
/usr/bin/irexec &
/usr/bin/openbox &
mythwelcome

4)

chmod +x /usr/bin/mythtv-openbox

Eseguendo il logout dal desktop grafico è ora possibile selezionare il tipo di sessione “MYTHTV on openbox”. Agli avvi sucessivi verrà impostato come sessione principale e mythwelcome verrà avviato. Si può scegliere di far partire direttamente mythfrontend, ma mythwelcome offre alcuni vantaggi.

Sul mio PC l’installazione è leggermente diversa, tutti gli script li creo nella home/bin dell’utente di mythtv, così da non avere script custom sparsi sul sistema.

La cartella $HOME/bin è nei path di ricerca per l’utente. Usando quest’approccio l’unica operazione che richiede i permessi di root è la creazione di un link nella cartella xsession:

ln -s $HOME/bin/mythtv.desktop /usr/share/xsessions

Configurare la rete wireless in modo tale che si avvii in automatico all’accensione del PC è molto semplice su ubuntu. NetworkManager eseguito in modalità root consente di marcare una connessione come condivisa tra gli utenti e auto avviante.

Terminata questa semplice configurazione e riavviato il pc può capitare che molti servizi non si avviino più in automatico e il PC si trova in un runlevel non definto. Il desktop grafico per fortuna funziona correttamente (le shell tty non partono) e digitando da un terminale il comando runlevel si ottiene un undefined:

root@acer:~# runlevel
undefined

Si tratta di un baco e per correggere la situazione occorre editare due file della sequenza di init di upstart:

vi /etc/init/rc-sysinit.conf

La riga:

start on filesystem and net-device-up IFACE=lo

Deve diventare:

start on filesystem and net-device-added INTERFACE=lo

Stessa operazione deve  essere fatta sul file:

/etc/init/mythtv-backend.conf

Il baco che causa questo mal funzionamento è dovuto alla nuova gatione a eventi di upstart. Gli script sopracitati si attivano a seguito dell’evento di configurazione sull’interfaccia locale. Quando NetworkManager viene configurato per avviare le connessioni in automatico l’evento di configurazione sull’interfaccia  lo non si genera, viene gerato però l’evento di intefaccia aggiunta.
La nuova gestione a eventi di upstart sembra ancra un po instabile, devo però dire che i benefici in fase di avvio sono notevoli

Prima ancora di iniziare con il mio progetto di realizzare un HTPC avevo sperimentato sia Windows MCE che Linux Mythtv. Linux era troppo primitivo, i driver erano un macello da compilare e per configurare il sintonizzatore bisognava usare una sorta di formula magica digitata a riga di comando.

Prima grossa scelta: Windows. Però per WinMCE non è un programma è un sistema operativo. Da sprovveduto ho considerato scelta molto bislacca, con il senno di poi ho capito i motivi della scelta. L’idea di avere tutto un sistema operativo ad hoc per il mio Media Center non mi piaceva, così ho cercato delle alternative.

Ne ho visto diverse e provato diverse, che integrino la TV ne ho trovato solo una: MediaPortal. Un gran figata devo dire. Per 15 giorni ho installato, configurato, reinstallato, provato plugin sperimentato. Ottimo devo dire, solo che Windows ci ha messo il suo per rendere la piattaforma inusabile:

  • 2 min e 30 secondi per l’avvio
  • Popup/Alert di altri programmi che compaiono sopra tutto
  • Windows che ognitanto si guadagna il focus
  • Password da inserire al logon
  • Telecomando che risponde  a tratti perché windows ‘è impegnato’
  • jittering del video

Diciamo che  ho capito perché la Microsoft ha optato per una distribuzione ad hoc, elimina tutti i problemi ineliminabili su Windows standard usato come MC.

Soprattutto il tempo di avvio, i freeze di sistema e il jittering del video mi hanno convinto a provare linux. La distro che ho scelto è la mythbuntu perché include la versione più aggiornata di mythtv.

La prima impressione è stata positiva, ricordavo la vecchia versione e devo dire che i passi avanti sono stati notevoli. La configurazione che mi sembrava ostica mi è sembrata banale alla luc e anche delle prove fatte con Media portal.

Dopo 15 giorni di prove, esperimenti e configurazioni varie ho deciso di rimanere con linux i vantaggi di questa soluzione sono:

  • possibilità di eliminare il desktop grafico (diventa un media center completo)
  • possibilità di configurare e controllare tutti gli elementi anche del sistema operativo

Anche Windows/MediaPortal comunque ha i sui vantaggi:

  • Ampissima disponibilità di plugin (alcuni però inchiodano tutto e sono complessi da rimuovere a mano) e comunità molto attiva
  • Windows sempre attivo ( a chi piace)

La prima difficoltà è scelta dell’Hardware, scegliere un Hardware sbagliato comporta limitazioni o costi aggiuntivi per correggere il problema.

La caratteristiche funzionali che devono essere soddisfatte da un buon impianto sono:

  • Silenziosità
  • Fluidità nei video ad alta risoluzione
  • Capienza per memorizzare grandi quantità da dati tra film, foto e file audio
  • Prestazioni sufficienti a gestire una GUI complessa senza rallentamenti
  • Costo contenuto

Nelle mie scelte uno dei fattori determinati è stato il costo, soprattutto per il case si possono trovare varianti molto costose, ma a quel punto forse conviene acquisatre un prodotto completo, anche se chiuso, come TiVo.

Ecco le mie scelte:

  • Case:  Antec Fusion V2 con display e telecomando
  • Scheda Madre: Asus E3M78-EM
  • Scheda Video: Nvidia GeForce 8300 integrata su scheda madre
  • CPU: AMD 2200+ Low Power
  • Memoria: iniziale 1GB, portata a 2GB per attivare VDPAU su Linux
  • HDD: iniziale 500Gb Seagate Barracuda (rotto dopo 9 mesi!), riacquistato uguale (era l’unico disponibile al volo) e aggiunto un secondo disco 500Gb preso da unità esterna inutilizzata (superati i 600 film in archivio)
  • Alimentatore: Semifanless
  • Wireless: Chiavetta generica basso costo
  • DVB-S: Technisat skystar su PCI
  • DVB-T: Riciclata chiavetta Usb Terratec Cinergy XS

Il costo si è mantenuto contenuto anche in virtù di ricicli vari di componenti.

Il sistema è soddisfacente ma non è perfetto, eco qui in sintesi i difetti:

  • L’alimentatore semifanless consuma ca. 20W (!!) a PC spento, non ho misurato altri alimentatori ma 20W (!!) mi sembrano veramente troppi. (Il televisore consuma in standby 13W).
  • La scheda video ha il codec interno ma è di fascia molto bassa, con il teletext in overlay ha dei leggeri scatti.
  • Il display e il telecomando in dotazione con il case sono imon, pessimi per qualità. Il display si vede solo in un angolo di ca 30° verticale o orizzontale. Seduto sono alto ca. 1 mt , il baracco è posto a 20 cm. di altezza, 30° non ci saranno mai e poi mai, quindi illeggibile, inutile, fastidioso. Il telecomando è complesso (troppo), pensato per Windows, sono presenti i trasti con la bandierina, e le freccie sono sostituite da una sorta di track che riproduce il mouse, nessuno capiscre mai cosa sta schiaciando!
  • Mancano sul frontale gli slot per le memory card delle macchine fotografiche, occorre un adattatore.

! Un suggerimento, NON comprate imon integrato nel case, soldi buttati. Meglio soluzioni alternative, il telecomando, ormai è presente in tutte le schede TV.

IT Multimediale, ossia tecnologia informatica multimediale.

Da un anno ca ho deciso di sostituire tutto l’insieme di:

  • Lettore DVD
  • Decoder satellitare
  • Sintonizzatore radio
  • Masterizzatore DVD

Con un unico scatolotto, un unico telecomando e tante funzioni in più. A distanza di un anno posso dire che l’impresa è più ardua del previsto se si desidera ottenere un risultato perfetto. E credo che gli interventi non termineranno mai perché ogni novità diventa appetibile e quasi a portata di mano. Quel quasi fa si che il lavoro non termini mai.

Quando si compra un prodotto e si scopre che le funzionalità non sono esattamente quelle desiderate e che alcune cose potrebbero funzionare meglio si alzano le mani e con un bel “pazienza” si chiude il tema. Un PC multimediale costruito ad hoc può sempre essere migliorato e corretto, questo fatto lo trasforma in qualcosa di analogo alla fabbrica del duomo che non vede mai la fine dei lavori.

Questo blog ha quindi due scopi, aiutare i poveretti che decidono di intraprendere la mia strada e serve a me come blocco degli appunti per non ripetere errori fatti e ricordarmi quali sono le motivazioni di talune scelte.

http://www.lavoce.info/articoli/pagina1000254.html

Pagina successiva »