Archivi per la categoria ‘Internet’

Di come un bug in uno script PHP possa mettere in ginocchio un sito

mercoledì, 3 marzo 2010

Il sito in questione è il mio, tuttoeniente.net, che ha un sistema creato da me per visualizzare le ultime notizie in ogni pagina. Per ovvie ragioni di spazio non posso visualizzare la notizia completa, quindi la tronco a 70 caratteri.

Tagliare brutalmente porterebbe ad avere 9 volte su 10 parole a metà, quindi avevo scritto uno stupidissimo script che taglia allo spazio successivo. Eccolo:

function ultime_news($notizie = 2, $forumid = 10, $cut = 70){
    $news = '';
    $q_news = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT $notizie");
    while($notizia = mysql_fetch_array($q_news)){
       $lenght = strlen($notizia['testo']);
       if($lenght > $cut){
            while(substr($notizia['testo'], $cut, 1) != ' '){
                $cut++;
            }
            $testo = substr($notizia['testo'], 0, $cut).' [...]';
        }else{
            $testo = substr($notizia['testo'], 0, $cut);
        }
        $data = strftime("%d/%m/%Y", $notizia['data']);
        $news .= "<p><a href=\"/news/$notizia[id]-".encode_for_url($notizia['titolo']).
                 ".html\"><span class=\"news-title\">$notizia[titolo]</span></a> ".
                 "<span class=\"news-date\">($data)</span><br />".
                 "<span class=\"news-text\">$testo</span></p>";
    }
    return $news;
}

Tutto bene, se non fosse che l’ultima notizia che ho inserito è “Si aggiungono nuove barzellette alla nostra collezione, corri a leggerle!”, 74 caratteri. A 70 caratteri siamo giusto a metà della parola “leggerle”, quindi avanziamo alla ricerca di uno spazio. Lettera, lettera, lettera, punto esclamativo. Fine. Nessuno spazio. Risultato? Loop infinito e sito KO. Peccato che quando ho inserito la notizia non ci ho fatto caso, e oggi ho dovuto smadonnare non poco prima di trovare la ragione del sito fuori uso…
La solulzione? Una banalissima limitazione dello spostamento del taglio fino alla lunghezza totale della notizia.
In pratica while(substr($notizia['testo'], $cut, 1) != ' '){ diventa while(substr($notizia['testo'], $cut, 1) != ' ' && $cut <= $lenght){

Confrontare le prestazioni di due server DNS

domenica, 13 dicembre 2009

Con l’uscita dei Google Open DNS ho sentito la necessità di confrontare in modo oggettivo le loro prestazioni con gli OpenDNS che usavo  in precedenza, così ho recuperato le mie vecchie e scarse conoscenze di BASH e ho creato un piccolo script.

CompareDNS-mini

Lo script, che trovate qui, sfrutta il comando dig per risolvere per 5 volte gli IP collegati a 3 domini (google.com, ubuntu.com e kernel.org) con ciascuno dei 2 DNS passati come argomenti allo script, e facendo poi la media dei risultati.

Mi rendo conto che lo script è molto inelegante ed efficiente, ma fa il suo lavoro. Sono accettati consigli su come migliorarlo.

Fonera 2.0 out!

martedì, 21 aprile 2009

È ora disponibile nel FON Shop la nuova Fonera 2.0 con porta USB! Il prezzo? 49,95 + spedizione, totale circa 59 euro.

Se qualcuno avesse 60 euro che gli avanzano me ne regali pure una! :D

Pesce d’Aprile by YouTube

mercoledì, 1 aprile 2009

Oggi come spesso capita stavo andando su YouTube per vedere un video e ho scoperto questo simpatico pesce d’aprile:

Sono troppo pigro per farne io stesso uno, quindi eccone uno già fatto! Tanto per curiosità, qualcuno ha visto altri pesci interessanti in giro per la rete?

Buon 2009 e sconto su VPS

giovedì, 1 gennaio 2009

Buon anno a tutti!

È davvero tanto che non mi faccio sentire, e me ne scuso. Per farmi perdonare vi segnalo un’offerta del provider da cui ho acquistato il mio VPS: fino all’8 gennaio offre uno sconto a vita del 20% su tutti i suoi VPS, con prezzi da 3,92 a 31,92 dollari al mese

Serve

Per poter approfittare dell’offerta è sufficiente andare nell’apposita zona del sito di Web Wide Hosting e utilizzare il codice promozionale HAPPY2009.

Ci tengo a specificare che io non prendo nessuna percentuale sulle vendite, vi segnalo l’offerta solo perché mi sembra interessante e conveniente

La Fonera 2.0

giovedì, 23 ottobre 2008

Da poco (oggi?) è possibile anche in Italia acquistare la nuova Fonera 2.0, ancora in versione beta per gli sviluppatori, che in pratica aggiunge una porta USB 2.0 alla Fonera+, aprendo un’infinità di nuovi orizzonti.

Fonera 2.0

Personalmente mi piacerebbe implementare le seguenti funzionalità:

  • NAS (collegando un disco USB o una pendrive la si rende disponibile in LAN tramite NFS o Samba o addirittura FTP)
  • Client aMule e Torrent (controllabili via browser per scaricare a PC spento, con possibilità di restringere l’accesso alla sola LAN o permettere anche l’accesso da Internet)
  • Videosorveglianza (collegando una Webcam, con tanto di rilevazione del movimento, visualizzazione immagine attuale, invio immagine via mail/FTP/SCP a intervalli regolari o su rilevazione del movimento, con configurazione via browser, magari con Zoneminder)
  • Funzionalità QRM (connettersi ad Internet non tramite cavo ma tramite rete wireless preesistente, utile per piazzare la Fonera in zone con migliore copertura)
  • Repeater in modalità QRM (se è attivata la modalità QRM, la rete MyPlace viene comunque creatae ripete la rete a cui ci connette)
  • Bridge LAN/MyPlace e QRM/MyPlace

Il problema è che ora il giocattolino costa la bellezza di 49,95 euro compresa spedizione, davvero troppo per le mie finanze attuali. Chiedo dunque la collaborazione di voi lettori: invito chiunque abbia la possibilità di donare, anche un solo apprezzatissimo euro, di farlo. Prometto di impegnarmi ad implementare queste funzioni nella Fonera 2.0, qualora riuscissi a comprarla. Chi è interessato può donare con PayPal:


Un NSLU2, mille usi

lunedì, 29 settembre 2008

Avevo già annunciato nello scorso post che avrei descritto gli scopi per i quali uso il mio fidato NSLU2, quindi mantengo la promessa.

NSLU2
L’NSLU2 nasce come NAS, cioè un dispositivo in grado di rendere disponibili sulla LAN due dischi fissi/chiavette USB. È un dispositivo basato su Linux, quindi Linksys ha rilasciato i sorgenti del firmware e da questi è nato il progetto Unslung, che mantiene l’interfaccia web originale e aggiunge alcune funzioni, come la possibilità di installare dei programmi aggiuntivi presi dai repository Optware.

(continua…)

Asterisk: un account SIP per ricevere e uno per chiamare

venerdì, 26 settembre 2008

Solito titolo poco chiaro, scusate. Questo è il post che ho promesso l’altro ieri, quando ho annunciato di avere un numero VOIP. Qui scenderò nei dettagli della mia configurazione, cercando di renderla comprensbile anche a chi non ha mai avuto a che fare con il VOIP, come ad esempio me medesimo la settimana scorsa.
VOIP con Asterisk

La mia situazione, ma potenzialmente anche la vostra, visti gli evidenti vantaggi economici rispetto ad un normale telefono fisso Telecom, è la seguente:

  • Un account SIP con un provider che vi fornisce un numero geografico chiamabile da tutti i telefoni, nel mio caso Messagenet, servizio Free Number.
  • Un account SIP con un provider con tariffe particolarmente convenienti verso i telefoni tradizionali, nel mio caso Poivy, di cui sto per illustrare le tariffe
  • Uno (o più) telefoni (Aladino e Nokia N80 nel mio caso) o softphone (come l’ottimo Ekiga) da connettere al centralino

Chiaramente ci serve un computer su cui installare Asterisk, che deve necessariamente essere acceso. Nel mio caso uso un Linksys NSLU2 con Debian Etch, un portento (seguirà post su questo argomento). Segnalo la possibilità di eseguire Asterisk anche sui router con firmware [DD|Open]WRT, come i mitici Linksys WRT54G o la Fonera.

(continua…)

Ho un numero VOIP!

mercoledì, 24 settembre 2008

Grazie all’ottimo servizio gratuito FreeNumber di Messagenet ho avuto completamente gratis il mio numero telefonico VOIP!

VOIP con Asterisk

Ora potete telefonarmi allo 02/00613655, e vi risponderò dal mio Aladino WiFi collegato al centralino Astersik installato sull’NSLU2… A breve farò un post con i dettagli della confiugrazione di Asterisk.

Usare Icecast per distribuire una web radio nella LAN

lunedì, 22 settembre 2008

Il lungo titolo spiega bene lo scenario: avete più PC/dispositivi che vogliono ascoltare una stessa webradio nello stesso momento. Ogni PC/dispositivo farà la sua connessione alla webradio, quindi 2 ascolti contemporanei portano al raddoppio della banda necessaria per l’ascolto. Ok, saranno solo 256 kbps nella maggior parte dei casi, ma è comunque uno spreco, per non parlare del caso in cui le connessioni contemporanee siano più numerose. La soluzione potrebbe essere, in alcuni casi, un collegamento con un cavo audio, ma non sempre è possibile. Si può risolvere il problema usando Icecast, il famoso streaming server.

Icecast

È necessario impostare il server in modalità “Single Broadcast Relay“, con la modalità On Demand attivata. La cosa più comoda è avere un server sempre attivo o quasi, nel mio caso l’ormai fondamentale Linksys NSLU2 con Debian Etch (che uso anche come aMule/Torrent/HTTP downloader, server HTTP, server UPNP, NAS con NFS e centralino VOIP con Asterisk), ma qualsiasi Linux Box va più che bene, fermo restando che dovrà essere accesa per accedere alla webradio tramite Icecast…

(continua…)