Registrare la voce di dio?

Dovrei aprire una categoria “idiozie”… mi limito a un tag.. ^_^ Ad ogni modo… Mai avuto la voglia di sentire come parla il nucleo del vostro computer? Nulla di più semplice:

cat /boot/vmlinuz-2.6.24-15-rt > /dev/dsp

Ovviamente la versione del vostro vmlinuz può cambiare! ^_^
A questo punto il passo successivo è facile da pensare… registriamola! ^_^ Dopo aver attivato il capture e alzato il volume di cattura nella Regolazione Volume della mia Ubuntu Studio, è bastato lanciare da un altro terminale questo comando.. e mi sono trovato con la voce di dio in un comodo file wav… è interessante come ogni tanto mugoli! ^_^

ffmpeg -f audio_device -i /dev/dsp -ab 128 -f wav voice_of_god.wav

Buon divertimento a registrare qualsiasi file del vostro computer… chissà che voce ha uno dei pdf che uso a lezione! ^_^

P.S. Nel titolo ho scelto di scrivere dio in minuscolo per evitare accuse di blasfemia… NON STO PARLANDO DI UN QUALSIASI DIO DI QUALSIASI RELIGIONE… così stiamo tutti più tranquilli… diciamo che per il computer il proprio kernel è dio!

Firmware Apple iSight

Per poter usare la iSight integrata nel mio macbook, come da istruzioni sul wiki, devo mettere in /lib/firmware/2.6.22-14-generic/ (o qualsiasi sia il vostro kernel) il file che trovate nella installazione di leopard nella directory raggiungibile con (spezzo in due cd per starci nella pagina… O_O):

cd /System/Library/Extensions/IOUSBFamily.kext/Contents/
cd PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/

Avviare uno script quando si verifica l’evento di connessione alla rete.

Mi stavo chiedendo se ci fosse un modo di collegarmi a un server samba, col portatile, ogni volta e solamente, se la connessione è attiva, uno script che monti il file system remoto solo quando effettivamente è disponibile… non ho trovato gui per questo, ma la soluzione è talmente semplice che non credo proprio possa essere un problema, il tutto parte dall’usare un piccolo script in una cartella ben determinata, tutto quello che è contenuto in /etc/network/if-up.d viene eseguito quando l’interfaccia (una qualsiasi, ci sono modi per limitare solo a certe interfacce) di rete è attiva e la rete collegata, lo script che fa al caso mio è invece:

#!/bin/sh

/bin/mount -t cifs -o password=unapasswordacaso //10.0.1.1/iomega\ Disk /mnt/iomega

Mentre per smontare nel momento giusto (può richedere la forzatura), creare uno script eseguibile in /etc/network/if-down.d:

#!/bin/sh

/bin/umount -f /mnt/iomega

Howto: Sme Server (PDC) + FreeRadius + Wireless AP + Autenticazione Windows XP sul dominio via wireless

Un cliente mi ha chiesto di portare la sua infrastruttura informatica da completamente cablata a wireless, non ho trovato guide on line su questo topic su una configurazione come descritta nell’oggetto, quindi ho deciso di scrivere questo howto in modo da raccogliere gli appunti e le informazioni sparse per la rete che mi hanno permesso di configurare il tutto, in realtà, ad oggi, mi manca ancora lo step finale, fare in modo che il client winXP attivi il wireless prima della schermata di login, sto studiando proprio ora n po’ di guide sparse su questo argomento per vedere di riuscire poi a riassumerle in questa guida (sembra che manchi solo la generazione da parte dello sme server con freeradius di dei certificati da installare nella macchina windowsXP, se qualche lettore, incappando in questo diario disgraziato, avesse già esperienza di un tale setup, sarei molto felice di conoscere il suo parere e ricevere consigli! ^_^)

Prerequisiti:

  • SME Server configurato come PDC
  • Utenti e gruppi per il pdc impostati a dovere
  • Un AP Wireless
  • Un computer con Win XP Pro

FreeRadius

SME Server viene già equipaggiato con FreeRadius per permettere l’uso della VPN, per prima cosa, attivo il flag VPN per tutti gli utenti del dominio (ho letto da qualche parte, non ricordo dove, che questo è un passo necessario, non ne sono sicuro, un giorno proverò a eliminarlo), a questo punto, l’unica cosa che manca è l’aggiunta del client, fra quelli conosciuti da FreeRadius, attraverso cui vengono inviate le informazioni di autenticazione degli user, in questo caso il client che fa da ponte fra il computer e il server è l’access point, per impostarlo bastano queste tre azioni:

  • andare nella sezione hostnames and addresses del server-manager dello SME server, aggiungerlo fra i nomi host conosciuti (zona Local)
  • lanciare da utente root dello sme server (accedendo magari via SSH alla macchina), i due comandi che riporto nel blocco successivo
db hosts setprop ap_hostname.domain RadiusKey An1mp0ssib7eT0Gu3ssP@ssw0rd
signal-event remoteaccess-update

Access Point

A questo punto bisogna configurare il vostro AP per collaborare con lo SME Server, per fare ciò, selezionare nella pagina in cui si gestisce la sicurezza dell’AP wireless, WPA o WPA2 come tipo di autenticazione, specificare WPA Enterprise, il che dovrebbe rendere editabile la parte in cui inserire le informazioni del vostro server radius, normalmente gli unici parametri da impostare sono: indirizzo ip dello SME Server (che fa da PDC e Radius server), porta (1812) e la chiave del client (nell’esempio: An1mp0ssib7eT0Gu3ssP@ssw0rd).

Client

A questo punto ho provato a collegarmi col mio portatile per testare la connessione, seleziono in NetworkManager l’SSID della rete wifi, mi viene presentato un dialogo in cui scelgo WPA Enterprise come tipo di tipo di autenticazione e inserisco come nome utente e password il mio utente impostato nello sme server come utente del dominio, gli altri parametri (ad esempio PEAP), li vedo già impostati automaticamente, il client linux si collega perfettamente, ok, l’AP e lo sme server dialogano! ^_^

Windows XP

Riesco a collegarmi con la macchina windows xp alla rete wireless, bene, mi rende molto felice, già che ci sono provo a impostare nei parametri di autenticazione un altro utente del dominio e senza problemi si collega, l’utente non aveva il flag VPN cliccato nell’interfaccia Utenti dello SME Server, inizio a pensare che quel flag non serva per collegarsi alla rete wifi una volta loggati nel client, ma piuttosto aiuti ad attivare la scheda di rete wifi prima della schermata di logon, magari fa in modo che vengano generati dei certificati che possono essere installati nella macchina winXP per autenticarla prima del login… vedremo.
Per ottenere questo risultato basta seguire questi passi:

  • Click destro su risorse di rete -> Proprietà
  • Click destro sulla connessione di rete che corrisponde alla scheda wifi -> Proprietà
  • Scegliere il tab Reti Wireless
  • Cliccare su Usa windows per configurare la mia rete wireless
  • In reti preferite, selezionare Aggiungi
  • Inserire l’SSID della rete wifi
  • Selezionare come Autenticazione Network: WPA
  • Selezionare come Data encryption: TKIP
  • Nel Tab Autenticazione, scegliere Protected EAP (PEAP)
  • Togliere la spunta da tutti i checkbox
  • Cliccare su Proprietà
  • Togliere il Valida il certificato del server
  • Togliere Abilita connessine Veloce
  • Selezionare nel box: Secured Password (EAP-MSCHAP v2)
  • Cliccare su Configura
  • Togliere la spunta sull’uso delle credenziali di logon di windows
  • A questo punto, la prima volta che ci si prova a collegare verrà presentato un balloon da cliccare che renderà visibile una interfaccia di inserimento dati, inserire il nome utente e la password che vengono usati per l’autenticazione sul dominio dell’utente

Ora viene la parte ancora un po’ nebulosa, devo riuscire a far attivare il wifi prima del login, in modo da poter staccare finalmente quei brutti cavi di rete! O_O

N.B. Sembra da questa guida che i certificati che mi servono siano presenti in /etc/rddb/certs e si chiamino root.der e root.p12, appena posso provarli, aggiorno questa guida, efettivamente nella mia installazione SME Server sono presenti (evidentemente auto generati dallo sme server per risultare preconfigurato per gli accessi VPN, grazie SME Server Team! ^_^).
N.B. (20081702) Ho provato i due certificati, sono scaduti e WinXP non me li usa, però ho scavato un po’ nel wiki di SME Server alla ricerca di contribs interessanti e ho trovato Certificate, con cui sono sicuro di non fare casini nella generazione di nuovi certificati (non so bene in sme se vengano già usati o meno quelli esistenti, vorrei evitare di mandare tutto a spendere! ^_^
N.B. (20081802) Guardando la documentazione per il contrib presentato nel precedente N.B., ho scoperto dove in realtà risiedono i certificati del server, in /home/e-smith sono presenti tre cartelle con il crt, la key e il pem… vedremo… intanto tutto tace nei riguardi della mia richiesta di aiuto alla comunità dello SME Server… ha avuto qualche risposta… nevvero si è trasformata in una amichevole chiacchierata un po’ OT, ma anche questo fa parte del gioco! ^_^

Database Access da Linux

Mi sta capitando, per fortuna o per sfortuna 😉 di dover mettere le mani dentro a database access, dalla mia linux box, per migrazioni dal sistema proprietario a Database aperti (e più performanti! ^_^).

La fortuna è che mi piace fare esperienza! ^_^

Comunque, in qualche ora di ricerca ho fatto fatica a capire come usare ODBC per accedere ai dati, la parte che non ho trovato facilmente è stato come aggiungere driver e datasources (avrò usato le parole sbagliate in google… oppure non c’è molta documentazione indexata dagli spider del motore di ricerca…).

La soluzione mi è arrivata incappando in un post di una mailing list.

Per prima cosa si devono installare questi pacchetti (come riferimento uso la mia ubuntu gutsy):

sudo apt-get install libmdbodbc

Un tool grafico per sfogliare i database mdb:

sudo apt-get install mdbtools

Successivamente si deve aggiungere al file /etc/odbcinst.ini il driver (inteso come libreria condivisa) inerente al driver per MS ACCESS, così da segnalare a odbc come maneggiare i file di tipo mdb:

[MDBToolsODBC]
Description = MDBToolsODBCdrivers
Driver = /usr/lib/libmdbodbc.so.0
Usage = 1
FileUsage = 1 

Ovviamente, occhio al fatto che nella vostra distribuzione lo shared object sia in /usr/lib, sennò cambiate la stringa dopo Driver = in modo che rispecchi la posizione del file nel vostro filesystem.

Ora, supponendo che il file .mdb sia in /home/mionome/Documents/Prova.mdb si deve aggiungere questa sorgente di dati al file /etc/odbc.ini:

[Prova]
Description = Prova Sample Database
Driver = /usr/lib/libmdbodbc.so.0
Database = /home/mionome/Documents/Prova.mdb 

Ora, come prova, si può provare il comando:

isql Prova

che vi metterà in connessione con il database Access specificato nel datasource.

A questo punto, visto che ne ho bisogno in un progetto ruby, devo installare anche i bindings odbc per questo linguaggio:

sudo apt-get install libdbd-odbc-ruby

Che ci permette, sotto irb, di provare il collegamento al database dall’ambiente ruby:

require "odbc"
ODBC.drivers
ODBC.datasources
connection = ODBC.connect "Prova"

Lanciando il comando irb mi trovo nell’ambiente interattivo di ruby, molto comodo per eseguire delle prove; come prima cosa è importante il require “odbc” che carica il modulo ODBC, per sapere se ruby vede i driver e i datasource di odbc (perchè mai non dovrebbe? ^_^) ho provato a richiamare i due metodi statici: drivers e datasources che restituiscono entrambi i rispettivi array (benissimo, vedo effettivamente quelli inseriti nei due file di configurazione), per ottenere l’oggetto database, su cui poi operare attraverso i metodi elencati nelle pagine di Ruby ODBC Reference, devo fare la connessione al datasource giusto (ODBC.connect “Prova” è l’omologo in ambiente ruby di isql Prova).

A questo punto si possono provare le query:

query = connection.prepare("SELECT * FROM PROVA_TABLE")
query.execute.each_hash() { |row| print row.inspect }
query.drop
connection.drop_all

Welcome back home.

E’ successo, come scrivevo in Un Anno di Mac ormai ero sempre più propenso a tornare nella casa del pinguino anche sul macbook, dopo un anno e un mese di uso di Mac OS X il passaggio è avvenuto, sul mio Macbook ho ormai in pianta stabile (anche se parliamo di una release Alfa) una bella Ubuntu Gutsy completamente funzionante (a onor del vero mi manca di testare la webcam e il microfono), quando scrivo completamente intendo compreso di sospensione funzionante, wifi, trackpad (anche meglio che nell’orignale sistema di cupertino, la per il click di destra dovevo usare la combinazione CTRL+Click, in ubuntu mi basta tappare con un dito per il click sinistro, due dita per il click destro e tre dita per quello centrale (sempre senza perdere la comodissima, non per Matte ;-), possibilità di scrolling orizzontale e verticale con le due dita).
Ovviamente nessun problema con il comparto grafico, già dal live cd ubuntu aveva rilevato correttamente la scheda video e usato sia la risoluzione 1280×800 che i driver 3d con compiz attivato di default (poi visto che sono ‘gnorante dentro, ho installato il configuratore avanzato di compiz per attivare tutti i plugin più fighi e inutili! ^_^).
Il mio desktop. Metacity personalizzato
Altra nota spettacolare (per me) è il fatto che non sono più legato a una pesante e aliena macchia virtuale con win dentro per fare girare gli unici due programmi per windows che mi servono per lavoro (programmazione degli impianti domotici per la Crestron), le ultime due release di wine, opportunamente configurate, fanno girare i programmi come fossero nativi, con pieno supporto per la seriale (ieri ho acquisito i codici IR di un telecomando per un lavoro ed è stato davvero soddisfacente non dover aspettare i tempi di una macchina virtuale).
Questa soluzione con wine mi permette anche di fare una cosa molo carina, avendolo ora ben configurato tutto (grazie a ies4linux e wine-doors una cosa di 20 minuti compresi i dowload), posso tranquillamente copiare su cd la cartella .wine nella mia home e avere sempre degli snapshot backuppati e sempre funzionanti (senza dover nuovamente sprecare 20 minuti per riconfigurare il tutto, comodo no?).

Trackpad del MacBook con multitouch

Girando per la rete e applicando un po’ di consigli trovati in giro (i maggiori consigli sono arrivati da: http://www.thouters.be), ora ho un bel trackpad che sfrutta tutte le funzionalità che aveva in Mac OS X, questa è la sezione relativa nel file (/etc/X11/xorg.conf):

Section "InputDevice"
        Identifier "Synaptics Touchpad"
        Driver "synaptics"
        Option "SendCoreEvents" "True"
        Option "Protocol" "auto-dev"
        Option "Device" "/dev/psaux"
        Option "SHMConfig" "True"
        Option "LeftEdge" "100"
        Option "RightEdge" "1120"
        Option "TopEdge" "50"
        Option "BottomEdge" "310"
        Option "FingerLow" "20"
        Option "FingerHigh" "30"
        Option "MaxTapTime" "150"
        Option "MaxTapMove" "90"
        Option "MaxDoubleTapTime" "180"
        Option "VertScrollDelta" "25"
        Option "HorizScrollDelta" "30"
        Option "HorizEdgeScroll" "0"
        Option "VertEdgeScroll" "0"
        Option "FastTaps" "true"
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"
        Option "MinSpeed" "0.5"
        Option "MaxSpeed" "3.5"
        Option "AccelFactor" "0.35"
        Option "VertTwoFingerScroll" "1"
        Option "HorizTwoFingerScroll" "1"
EndSection

Forse tutte queste cose erano gestibili dinamicamente usando programmi grafici come Gsynaptics, però visto che il macbook non cambierà il trackpad tutto di un colpo (a meno di non smontarsi da solo), preferisco averle fissate nel file di configurazione!