AGGIORNARE MANUALMENTE I SETTINGS SU ENIGMA2/DM800

Da quando ho abbandonato Windows e sono passato ad altri sistemi operativi non godo più del privilegio di usare bizzeffe di programmi sviluppati per i più disparati scopi, il più delle volte molto utili e che vanno a tappare mancanze più o meno macroscopiche dei sistemi operativi.

Per poter seguire questa guida si ha bisogno di sapere l'indirizzo IP della propria Dreambox (o decoder Enigma2 in genere).
Si devono inoltre scaricare i settings già pronti ed agiornati. Io attualmente uso quelli di Vhannibal (http://www.vhannibal.net) che sono strutturati abbastanza bene e mi ci sono abituato da tempo.

Io ho scaricato il pacchetto di settings per enigma2 dual feed poichè ho un impianto che vede due satelliti. Voi fate lo stesso se avete la stessa configurazione oppure, se vi interessa solo SKY prendete il pacchetto mono feed Hotbird. E' un file zip, decomprimete il contenuto da qualche parte facilmente raggiungibile (es. Desktop) e continuate a leggere.

A questo punto avrete sul desktop una cartella contenente i settings che si chiama qualcosa di simile a "Vhannibal E2 Hot Bird 30 nov" e dentro ci sono molti file tra cui lamedb, satellites.xml e molti file con estensione .tv. Ok per ora lasciate tutto li….

A questo punto collegatevi alla vostra dreambox via file system utilizzando  l'indirizzo IP del decoder reperito in precedenza. Per esempio, pensando di essere su windows e che l'IP della dreambox sia 192.168.1.7 potete andare su START–>ESEGUI e digitare \\192.168.1.7 e premere invio. Voi sostituite l'indirizzo IP con quello della vostra dreambox.

Se avete la dreambox con configurazione standard non vi verrà chiesta alcuna password….se vi venisse chiesta provate a mettere username root e password vuota, se non funziona provate username root e password dreambox. Se non funziona, l'avete cambiata in precedenza… cercate di ricordarvela!!!!!!e vedrete due cartelle, Harddisk e Configfiles.

Aprite Configfiles…. il sistema vi mostra un elenco di cartelle… aprite la cartella etc e successivamente enigma2

Dentro la cartella enigma2 copiate i files dei settings SOVRASCRIVENDO i file già presenti.

Tornate indietro di una cartella cioè dentro alla cartella ETC ed entrate dentro TUXBOX. Qui dentro copiate solo il file satellites.xml che è presente dentro la cartella dei settings. Anche in questo caso sovrascrivete il file se già presente.

Fatto!!!! a questo punto i settings sono stati spostati sulla dreambox, dobbiamo solo dirle di leggerli. Per fare questo prendere il telecomando della dreambox, aprire il menù e selezionare Shoutdown e poi restart enigma2.  Se non avete capito questo ultimo passaggio.. beh, riavviate la dreambox, fate prima ;-)

Quando la dreambox torna disponibile, i vostri settings dovrebbero essere aggiornati.

Buona visione
F.

 

ALTRE PROCEDURE:

FTP
Una procedura simile è possibile anche collegandosi via FTP alla dreambox. Potrebbero cambiare un po' i percorsi ma le cartelle sono quelle indicate. Per collegarsi via FTP è necessario che il servizio di server FTP sia attiva sulla dreambox.

CLIENT WINDOWS
Su Windows potete usare uno dei molti programmi disponibili per il caricamento dei settings come per esempio DREAMSET, potete trovare un link per scaricarlo sul sito di Vhannibal oppure cercatelo su google. E' abbastanza diffuso. Una volta lanciato il programma è necessario aprire i settings che si vogliono caricare aprendo il file lamedb. Al primo utilizzo è necessario anche configurare i parametri di connessione della dreambox che sono quelli normali che sapete IP/USERNAME/PASSWORD. Dovete anche indicargli il tipo di firmware che è installato. Quando avete configurato i parametri potete premere TEST per verificare se tutto funziona. Una volta configurata la Dreambox è possibile trasferire i settings scrivendoli (WRITE). Il programmino penserà anche a riavviare il servizio enigma2.

 

Io preferisco l'aggiornamento via filesystem che ho descritto nell'articolo… mi piace sapere come funzionano le cose e non abbandonarmi ad un semplice click..carica… fatto…
A voi la scelta come sempre…

SCRIPT PER LANCIARE CCCAM E OSCAM SU DM800

Prima di partire il mio profilo per questo tutorial: Dreambox 800 con ENIGMA2 Nabilo Blackhole 0.12 installata.  CAM già installata CCcam 2.1.3 e OSCAM.

Questa guida serve per aggiungere una CAM al sistema o meglio…. aggiungere uno script personalizzato quando si seleziona la CAM desiderata dal blue panel.

L'eseguibile per CCcam si chiama CCcam_213, quello per oscam si chiama oscam_539 (ho mantenuto un eseguibile per ogni versione per poter facilmente tornare indietro). Tutti e due gli eseguibili si trovano in /usr/bin/.

Ovviamente cambiando il nome degli eseguibili è possibile adattare questa guida a qualsiasi situazione.

Partiamo dallo script poi lo commentiamo: lo script si deve trovare nella cartella della dreambox  con questo percorso "/usr/camscript" ed il suo nome deve iniziare obbligatoriamente con "Ncam_" rispettando maiuscole e minuscole.

Quando una CAM viene attivata, lo script relativo viene lanciato e gli viene passato il parametro "start", mentre quando la CAM viene disabilitata viene passato il parametro "stop".

Il mio script si chiama  "Ncam_oscam545_cccam213.sh" e questo è il contenuto:

#!/bin/sh

CAMNAME="OSCAM539_CCCAM213"

remove_tmp () {
    rm -rf /tmp/*.info* /tmp/*.tmp*
}

case "$1" in
    start)
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    /usr/bin/oscam_539 -b &
    sleep 3
    /usr/bin/CCcam_213 &
    ;;
    stop)
    echo "[SCRIPT] $1: $CAMNAME"
    killall -9  CCcam_213 2>/dev/null
    sleep 1
    killall -9  oscam_539 2>/dev/null
    sleep 1
    remove_tmp
    ;;
    *)
    $0 stop
    exit 0
    ;;
esac

exit 0

#!/bin/sh
Indica al sistema che sta leggendo lo script quale è l'interprete da usare per l'esecuzione, ce ne sono vari.

CAMNAME="OSCAM539_CCCAM213"
Si popola la variabile che sarà usata per visualizzare il nome della CAM a video quando si scorre con i tasti destro e sinistro.

remove_tmp () {
    rm -rf /tmp/*.info* /tmp/*.tmp*
}

Qui si definisce una funzionncina che si chiama remove_tmp che serve per rimuovere i file temporanei da alcune directory

Le parole che iniziano con il $ sono delle variabili, $0 è il programma chiamato ovvero lo script, $1 è il primo parametro passato.

La parola chiave "case" permette di valutare cosa contiene la variabile $1. La parola chiave che chiude "case" è "esac".

Per ogni possibile condizione della variabile valutata si deve indicare con valore seguito da una parentesi tonda chiusa. La condizione viene a sua volta chiusa da doppio punto e virgola.

    start)
    echo "[SCRIPT] $1: $CAMNAME"
    remove_tmp
    /usr/bin/oscam_539 -b &
    sleep 3
    /usr/bin/CCcam_213 &
    ;;

quindi…. quando il primo parametro $1 è start

echo "[SCRIPT] $1: $CAMNAME"
scrive a video qualcosa per farci capire cosa sta facendo, in questo caso scriverebbe [SCRIPT] start: OSCAM539_CCCAM213

remove_tmp
richiama la funzione per la pulizia dei file temporanei

/usr/bin/oscam_539 -b &
Lancia l'eseguibile oscam_539 che si trova in /usr/bin/ con l'opzione -b per l'esecuzione in background. La & serve per eseguire questa operazione in modo asincrono cioè il sistema lancerà l'eseguibile ma continuerà l'esecuzione dello script senza attendere il termine dell'esecuzione.

sleep 3
Come è intuibile dice al sistema di attendere 3 secondi prima di continuare l'esecuzione (fa prendere un po' di respiro alla dreambox prima di lanciare la CCcam!)…

/usr/bin/CCcam_213 &
Stessa cosa per l'eseguibile della CCcam, in questo caso l'eseguibile non prevede il parametro -b

;;
Chiude la condizione di $1 = start

La condizione stop) è molto simile alla start ma, a differenza differenza di start, qui i processi vengono fermati invece che lanciati…

    *)
    $0 stop
    exit 0
    ;;

La condizione *) viene eseguita in tutti i casi e serve semplicemente per terminare l'esecuzione dello script ed uscire
 

PUNTO DI ATTENZIONE: la dreambox come sappiamo è gestita da una versione adattata di Linux con tutto ciò che ne comporta. in sistemi del genere il carattere per andare a capo alla fine di una riga è formato da un solo carattere invisibile comunemente chiamato LF (line feed).  Nei sistemi tipo Windows il sistema comunemente rappresenta il carattere per andare a capo con una combinazione di caratteri che sono CR+LF (carriage return + line feed).
Se aprite il vostro script per modificarlo su un sistema windows fate attenzione che il vostro editor utilizzi una modalita UNIX-like. Allo stesso modo se aprite il vostro script sotto UNIX o Linux o Mac buttate un occhio per verificare che il vostro editor sia configurato correttamente. A volte per motivi di compatibilità viene emulata la modalità di invio stile windows anche su sistemi Unix.
Ovviamente questo suggerimento viene fuori dopo aver sbattuto la testa per 10 minuti su uno script apparentemente corretto ma che andava in errore. Solo dopo ho capito che il mio editor su Mac emulava l'invio con carattere Windows e non veniva interpretato dal Linux della Dreambox!

Spero che questa piccola guida vi sia utile per poter creare il vostro script personale o per capire cosa fa la vostra dreambox quando attivate una CAM!! :-)

 

CENTRARE UN DIV VERTICALMENTE

Tempo fa stavo sviluppando un semplice sito web usando HTML/CSS/JS ed avevo la necessità di centrare un elemento nella pagina. Era un riquadro fatto con un DIV dentro al quale si sarebbe sviluppato l'intero sito.

Ho cercato un pò in giro su internet per non dover scrivere qualcosa che sicuramente era già stato affrontato da altri. Beh, ho trovato decine di soluzioni ma nessuna che facesse al caso mio.

Cercavo una soluzione lineare e pulita. un punto di partenza per il sito quindi non volevo incasinarmi la vita "sporcando" la mia pagina di codice ancora prima di iniziare a programmare!! :-)

Il web quel giorno era pieno di siti web che proponevano usi fantasiosi per un problema secondo me semplice e non accettavo di dover includere nella mia pagina web script JS o altro.

in quei giorni stavo leggendo un libro sui CSS (un ottimo libro, in fondo a questo articolo vi fornirò i dettagli) e, proprio come succede nei film mi è tornato in mente qualcosa che avevo letto qualche sera prima. Si parlava di margini negativi e margini percentuali. Ho ripreso in mano il libro e, con grandissima soddisfazione da Nerd ho sfornato la soluzione che cercavo.

La vorrei condividere con voi :-D

La soluzione tratta di centrare un DIV di 500px di altezza per 800px di larghezza ma si può adattare sicuramente ad ogni esigenza! C'è bisogno di un pò di CSS e qualche riga di HTML…

partiamo con il CSS, aggiungete questo alla vostra pagina web:

div#centered_div {
    width: 800px;
    height: 500px;
    position: relative;
    top: 50%;
    left: 50%;
    margin-left: -400px;
    margin-top: -250px;
    background-color: #000000;
    border: 1px solid #FF3;
}

E nel corpo della pagina inserite questo:

<div id="centered_div">
QUI DENTRO SI SVILUPPA IL SITO!!! WOW!!!
</div>
<!–FINE DIV CENTRATO–>

Il foglio di stile dice che il DIV con id=centered_div deve avere le dimensioni di 800×500 pixel ed essere posizionato a partire dal 50% dell'altezza e della larghezza della pagina.
Poiche la posizione indicata dai margini si riferisce all'angolo superiore sinistro del nostro box DIV, questo avrà un vertice esattamente al centro della pagina ma si svilupperà non centrato.
Per riportare il centro del DIV al centro pagina lo dobbiamo rispostare indietro esattamente della metà della sua altezza e della sua larghezza e lo facciamo usando i margini negativi.

Ho messo un colore di sfondo nero ed un bordo scintillande per vederlo meglio.

Potete modificare le dimensioni del DIV a vostro piacimento modificando anche i margini negativi con la metà dei valori delle dimensioni.

BUON DIVERTIMENTO CON IL VOSTRO DIV CENTRATO.

F

Il libro sui CSS si intitola "CSS The Missing Manual" di David Sawyer McFarland edito da O'Reilly e fa parte della serie The missing manual. E' un buon libro per utente medio.
Lo trovate nelle librerie on line, io l'ho comprato da Amazon.com usato pagandolo veramente una miseria, libro + spedizione 23 dollari, al cambio attuale 17 Euro. Cose impensabili in italia.

 

DA WINDOWS A MAC OS X – COSA MI MANCA!?

macvswindows

Dopo anni di Microsoft Windows.. dal 3.1 su DOS ai primi esperimenti di vero sistema operativo con Windows 95 fino ad arrivare ai più famosi, performanti  Windows XP e Windows Vista ho deciso di passare a MAC OS X, per la precisione a Snow Leopard dato che è il sistema attualmente in distribuzione e che l'aggiornamento costa solo un trentino di euro.

Non mi soffermo sui dettagli hardware o di design della macchina in quanto Microsoft fornisce solo il software mentre i produttori hardware sono altri (anche se ormai  sono completamente al servizio di MS dai driver alle tastiere con la finestrina ecc ecc ma questo è un altro discorso….)…

Definisco prima di tutto il mio concetto di uso del computer… dal più canonico e standard uso casalingo con Mail, Internet, Word Processing fino a sviluppo di software e gestione database, principalemente PHP, MYSQL, APACHE, ORACLE, COLDFUSION.

Queste attività quindi abbracciano un po' il computer a 360 gradi avendo bisogno di muovermi tra le cartelle, installare software, cercare files, associare un'estensione ad un particolare programma ecc ecc…..

SINTASSI HEREDOC-HEREDOC SYNTAX (PHP)

HEREDOC è un modo di rappresentare una stringa conservando la sintassi compresi i ritorni a capo e le indentazioni.
In PHP in particolare, le variabili vengono interpretate ed esplose nel testo ed in più, non essendo presenti dei delimitatori di stringa come le virgolette o gli apici non c'è bisogno di fare in continuazione concatenazioni di stringhe o escape con il carattere \.

Quante volte ci siamo trovati nella situazione di dover far scrivere a PHP con il comando echo un po' (tanto) codice HTML ed abbiamo scritto interminabili concatenazioni di stringa . $variabili . stringa ecc ecc? Forse troppe….

La sintassi HEREDOC ci viene incontro aiutandoci anzi salvandoci da questo ingrato compito!

Pacchetto di funzioni personali

functionsTutte le volte che inizio un nuovo progetto cerco di usare il più possibile script e funzioni che ho creato in precedenza.

Questo permette di velocizzare i tempi di implementazione e soprattutto affidarsi a del codice che si conosce bene e che è stato raffinato nel tempo rendendolo privo di errori e bug (per quanto questo possa essere possibile! ;-) )

Affinche questo sia possibile senza impazzire è importante seguire prima di tutto queste due semplici regole:

  • Tenere le funzioni e gli script raggruppati in un file o una directory
  • Creare funzioni e script di carattere generale  non troppo specializzati su un aspetto del progetto