15/06/2013

Subsonic

SubsonicLogoOggi si sente un gran parlare di servizi di streaming audio per portarsi appresso tutta la propria musica ovunque ci si trovi, servizi tipo Spotify o altre vaccate simili promettono mari e monti, salvo poi ritrovarsi inondati da una tale quantità di brani da non saper più quale scegliere…

Se anzichè dipendere da questi servizi preferite “degooglelizzarvi” e portarvi davvero ovunque la VOSTRA musica, sul VOSTRO hardware, con i VOSTRI servizi, allora vi consiglio di dare un’occhiata a questo fantastico servizio che risponde al nome di Subsonic.

Subsonic è ufficialmente un server di streaming audio completamente free che vi permette di ascoltare i vostri mp3 usando una comoda interfaccia web oppure delle applicazioni dedicate (anche per dispositivi mobile).
Tecnicamente parlando si tratta di una applicazione java disponibile sia come comodo package .war da deployare su un servlet container a piacimento (es Apache Tomcat), oppure come setup omnicomprensivo (applicazione + jetty) per Windows, GNU/Linux RedHat (rpm), Debian/Ubuntu (deb) oppure MacOS (pkg).

Tutto quello che dovete fare è lanciare il setup, attendere il completamento dell’operazione e poi collegarvi sulla porta standard 4040 (ovviamente personalizzabile a piacimento), loggarvi come amministratore e configurare i pochi semplici parametri necessari al funzionamento (es la directory che contiene i propri mp3).
Per esporre il servizio online potete scegliere se nattare il servizio oppure esporlo mediante un reverse proxy (io ho scelto quest’ultima strada), per fare in modo che il servizio utilizzi il protocollo https dovete seguire le semplici istruzioni che trovate in coda a questa pagina.

Riguardo alle applicazioni mobile (ma non solo) avete solo l’imbarazzo della scelta, a questo link trovate tutte le possibili alternative free o a pagamento; per utilizzarle vi basta installare la vostra prescelta sul dispositivo, puntare alla url del vostro server Subsonic e inserire le credenziali per autenticarvi.

Infine per raggiungere il vostro server Subsonic dalla fida ADSL di casa vi basterà registrarvi su uno dei tanti servizi di dns dinamico, crearvi un hostname pubblico e fare in modo che questo venga costantemente aggiornato con il vostro ip dinamico mediante le apposite utility fornite dal provider del servizio.

Beccatevi il mio gioiellino appena installato… e già, sono un fan sfegatato dei Dire Straits ;)

subsonic

09/05/2013

Analisi log con Webalizer

Al giorno d’oggi le analisi di log per webserver sembrano una cosa preistorica, con l’avvento dei sistemi di analisi degli accessi (es Piwik) servizi gloriosi come Webalizer o Awstats sono ormai considerati antiquati e non più adatti alle esigenze “dell’uomo che non deve chiedere mai” :\

In realtà l’analisi di log è una pratica che ha ancora una grande utilità, soprattutto per il monitoraggio dei servizi e di alcune risorse (es traffico generato dalle richieste http).

Come dicevo poco sopra i due indiscussi protagonisti in questo ambito software sono Awstats e Webalizer, il primo fornisce un report più dettagliato e utile in ottica di analisi degli accessi, il secondo risulta infinitamente più veloce e versatile, non richiede setup particolari ne ha requisiti di alcun tipo, basta lanciare il binario passando le opportune opzioni e il gioco è fatto.
Per questi motivi Webalizer è ancora oggi il mio software di riferimento per le analisi estemporanee “prima di subito”, tra colleghi però vedo che spesso viene scartato per il semplice fatto che non permette analizzare più file con un solo comando.

Per ovviare a questa limitazione basta lanciare un banale ciclo for per analizzare tutti i file di log richiesti con un unico comando, ovviamente utilizzando l’opzione -p per effettuare una analisi incrementale (altrimenti l’analisi di un mese verrebbe sovrascritta al passaggio tra un log e il successivo).

Ecco un semplice script bat per fare tutto questo:

@echo off
set webalizerbase=c:\utils\webalizer
rem personalizzare le tre variabili che seguono
set logdir=%webalizerbase%\log\domain
set analisidir=%webalizerbase%\analisi\domain
set hostname=www.domain.tld
del /F %webalizerbase%\logs.txt
dir %logdir%\* /O /B /S > %webalizerbase%\logs.txt
for /F %%v in (%webalizerbase%\logs.txt) do %webalizerbase%\webalizer.exe -o %analisidir% -n %hostname% -Q -p %%v

26/03/2013

Open source

gnuMi capita abbastanza frequentemente di discutere di software open source e uno dei dubbi che spesso sorgono è come contribuire ad un progetto.

Il modello di sviluppo open è una realtà che oggettivamente ha cambiato l’information technology, questo è un dato di fatto incontrovertibile, ed è un fenomeno sorprendente sia dal punto di vista tecnico che sociale.
Basta provare a lavorare in gruppo per un qualche ora per rendersi conto di quanto sia difficile coordinarsi e fare davvero “team”, già perchè è facile scrivere sul CV cazzate false tipo “ottima predisposizione al lavoro di gruppo”, un altro paio di maniche è metterlo in pratica, figuriamoci quando il gruppo è distribuito su un intero pianeta e composto dal più ampio e variegato campionario umano.

La domanda che però molti si pongono è come contribuire concretamente ad un progetto che ci sta particolarmente a cuore, oppure che semplicemente ci è risultato utile.
Dal punto di vista tecnico lo sviluppo di un progetto è una attività complessa che richiede competenze specifiche che solo una percentuale ridottissima degli utenti possiede; poi ci sono altri compiti altrettanto utili e meno impegnativi dal punto di vista tecnico (test, traduzione di documentazione, moderazione di forum e mailing list, creazione di how-to e guide di vario tipo) ma anche questi non sempre sono alla portata di tutti, quantomeno non della maggior parte degli utenti.

Ci sono però due altre cose che un progetto open-source necessità e su cui tutti possono impegnarsi:

  1. pubblicità
  2. risorse (banda e storage)

Riguardo alla prima c’è poco da dire, non perchè sia poco importante (anzi!) ma perchè è abbastanza autoesplicativa, riguardo al punto due invece qualche considerazione possiamo farla.

Anni fa i progetti open source venivano distribuiti mediante mirror, ovvero server che venivano aggiornati con i rilasci del progetto e che mettevano a disposizione spazio e connettività per permettere alla comunità di scaricare i file e poter beneficiare dei software.
Chiaramente nell’era delle connessioni analogiche (ricordate il vecchio modem 56k?) tutto questo era ad esclusivo appannaggio di pochi, principalmente aziende che in cambio di queste risorse venivano citate tra i “contributors” del progetto.

Se ci pensiamo al giorno d’oggi praticamente tutti (digital divide permettendo) godono di una connessione adsl flat con tagli di banda generosi, connessioni che generalmente sono inutilizzate per la stragrande maggioranza del tempo.
Come se non bastasse oggi esistono sistemi (il celebre Raspberry PI ne è un esempio) dal costo ridicolo (a partire da poche decine di euro) e dall’assorbimento ridottissimo (2-3W per il già citato Raspberry PI, meno di una TV in standby) che sono perfette per questo scopo, a questo aggiungiamo che gran parte dei progetti utilizza come sistema di distribuzione sistemi di file sharing come bittorrent.

Quindi quale miglior modo per contribuire ad un progetto open source offrendo un po’ di banda della propria connessione domestica, magari organizzandosi con dei semplici script per attivare il client bittorrent nelle ore in cui non utilizziamo la linea, siamo fuori casa, al lavoro, oppure semplicemente stiamo dormendo.

Ad esempio con una qualsiasi distribuzione linux e l’ottimo client bittorrent Transmission basta mettere in download una qualsiasi versione di un progetto e lasciare il tutto in seed una volta terminato il download, inserendo dei banalissimi cronjob per arrestare il servizio (schedulato ad esempio quando pensate di tornare a casa dopo una giornata di lavoro, nell’esempio alle ore 19):

00 19 * * * /etc/init.d/transmission-daemon stop > /dev/null 2>&1

e per farlo ripartire (quando generalmente ve ne andate a letto la notte, nell’esempio alle 2):

00 02 * * * /etc/init.d/transmission-daemon start > /dev/null 2>&1

Si tratta di una cosa semplice, alla portata di tutti, che ha un impatto economico ridicolo, ma di grande utilità, pensateci

12/07/2012

Digital delivery

Ho sempre avuto un pessimo rapporto con quello che oggi pomposamente si definisce “digital delivery” (DD).

Per me un videogioco ha sempre rappresentato una passione, un piacere, non solo per il prodotto digitale in se, ma anche per il più tradizionale e feticista aspetto materiale.
Già perchè i miei giochi me li godo, li finisco praticamente sempre (le eccezioni le conto sulle dita di una mano) e amo collezionarli, amo vederli in bella mostra ricoperti da quel sottile velo di polvere che si infila tra una confezione amaray e l’altra.

Amavo alla follia le vecchie confezioni, quelle di una volta, quando tornavi a casa con il videogioco nuovo nella sua bella scatolona, con gadget, manuali, supporti ottici o magnetici (insomma i floppy disk per capirci…).
Assaporavo l’apertura della scatola delle meraviglie, e periodicamente tornavo a riesumarla dallo scaffale di turno, riguardando i gadget, quella mappa in stoffa di Britannia, quel curioso sistema anticopia delle avventure Lucas Arts, piuttosto che il “nastro” di cd di Baldur’s Gate, il manuale di Indycar Racing o i floppy di Day of the tentacle.

Quando le belle confezioni di una volta sono state sostituite dai pratici ma asettici box amaray mi sono veramente incazzato, all’inizio li ho rifiutati rifugiandomi nel falso mito della pirateria “di protesta”, poi gioco dopo gioco vedere quelle confezioni ordinate e impilate una sopra l’altra, ognuna con la sua costina, tutte uguali ma diverse… beh quella visione ha riacceso la fiamma feticistica del collezionismo.

Ora qualcuno dirà che tra un po’ anche vedere la lista dei miei giochi su Steam farà lo stesso effetto, se così fosse dovete spiegarmi perchè gli unici giochi che io abbia comprato e non abbia mai toccato (o al massimo giocato un paio d’ore) sono proprio prodotti distribuiti in DD da Steam.
Gli altri giochi che ho registrato in Steam ma che ho fisicamente comprato li ho tutti finiti, quelli invece distribuiti unicamente in DD sono intonsi, immobili, non mi provocano alcuna emozione, non li sento miei, mi provocano le stesse emozioni di un discorso di Mario Monti, encefalogramma piatto.

E poi quella domanda subdola e ricorrente che non fa che tornarmi in mente ogni volta che sento parlare di DD come del futuro ineluttabile della distribuzione.
Perchè dovrei spendere di più (i prezzi dei videogiochi distribuiti in DD sono mediamente molto più alti delle controparti distribuite su supporto fisico) per avere lo stesso, sobbarcandomi una serie di costi impliciti (linea ADSL intasata per il download per giorni, PC da gaming acceso ininterrottamente per giorni con i suoi 160W di assorbimento in idle) e subendo una serie di disagi?

E’ fin troppo evidente che c’è qualcosa che non va se il modello di distribuzione tradizionale (che include stampa dei supporti, confezionamento, trasporto, distribuzione all’ingrosso e distribuzione al dettaglio) costa meno di un altro modello (il DD) che non prevede tutte queste fasi ma si basa su un servizio centralizzato di download digitale.
Non so come la pensate ma io mi sono stufato di farmi prendere per il culo da costoro e dai profeti del “non puoi farci niente, è il futuro”… stronzate.

15/02/2012

Social networking

Molte persone mi chiedono come mai non utilizzo Facebook, Google+, Twitter e altri servizi di social networking, il motivo è molto semplice:

Facebook

« Post precedenti | Post successivi »