prometheusproject http://blog.prometheusproject.it Il mio progetto,il mio lavoro...la mia passione Thu, 27 Jul 2017 09:54:32 +0000 it-IT hourly 1 https://wordpress.org/?v=4.9.6 Formato celle, riferimenti e formule: Excel (1) http://blog.prometheusproject.it/formato-celle-riferimenti-formule-excel-1/ http://blog.prometheusproject.it/formato-celle-riferimenti-formule-excel-1/#respond Thu, 27 Jul 2017 09:52:36 +0000 http://blog.prometheusproject.it/?p=17874 Riprendiamo il nostro tragitto verso la conoscenza di Excel, il noto programma di foglio elettronico. Per chi avesse perso la precedente introduzione la può trovare qui. In questa lezione parleremo di diverse cose, iniziando a mettere le mani in pasta sul prodotto. Ciascuna cella può contenere un qualsiasi testo si voglia, tuttavia c’è una differenza pratica tra quello… Read More »

L'articolo Formato celle, riferimenti e formule: Excel (1) proviene da prometheusproject.

]]>
Riprendiamo il nostro tragitto verso la conoscenza di Excel, il noto programma di foglio elettronico.
Per chi avesse perso la precedente introduzione la può trovare qui.

In questa lezione parleremo di diverse cose, iniziando a mettere le mani in pasta sul prodotto.

Ciascuna cella può contenere un qualsiasi testo si voglia, tuttavia c’è una differenza pratica tra quello che la cella contiene e quello che la cella visualizza  e potete sperimentarlo con i vostri occhi da subito.

Scegliete una cella qualsiasi e, selezionandola, digitate al suo interno la scritta “=2/3″ (esclusi i doppi apici) e premete invio. Ora noterete che la cella visualizzerà all’incirca (a meno di diverso arrotondamento) il valore 0,66667, tuttavia selezionandola potete vedere dalla barra delle formule che il suo contenuto è =”=2/3″.

Da questo primo esempio abbiamo già notato una cosa importante ovvero che la barra delle formule ci permette di vedere la formula contenuta all’interno della casella selezionata, mentre la cella, una volta finita la modifica, conterrà solo una sua rappresentazione.

Altro piccolo esperimento: guardate l’immagine alla sinistra di questo paragrafo e noterete che ci sono due celle contenenti una serie di 1. Notate qualche differenza? Bene eppure una differenza c’è, evidenziata solo dal diverso allineamento, la cella a sinistra considera il contenuto come numerico mentre quella a destra lo considera come testo.

La rappresentazione del contenuto di una cella può variare in maniera sostanziale in base al formato che vi applichiamo e le tipologie, con cui ci impratichiremo mano mano che andremo avanti nel corso, sono abbastanza standard : Numeri, Valuta, Testo, Data, etc…
La schermata di modifica del formato è raggiungibile in più modalità ed in ogni caso selezionando la casella interessata e poi effettuando una di queste tre operazioni:

  1. Attraverso la tastiera con la combinazione di tasti [Ctrl]+1 (pressione del tasto Control e del numero 1)
  2. Attraverso il menu contestuale a discesa, cliccando con il tasto destro del mouse sulla casella in questione e scegliendo la voce Formato celle…
  3. Facendo click con il tasto sinistro del mouse sulla freccetta rivolta diagonalmente verso il basso che si trova nell’angolo destro inferiore del riquadro Numeri, nella scheda Home (si veda figura a lato) .

Vi consiglio di fare una serie di esperimenti prima di andare avanti, così da capire la differenza tra le varie formattazioni;  provate a fare come vi suggerisco: prendete una casella a caso e digitate al suo interno il numero “40544″ (apici esclusi).
Noterete che il numero viene allineato verso il bordo destro della cella, in quanto per default i numeri vengono allineati così. Ora cambiate il formato  e provate ad impostarlo a “Testo”, noterete che l’allineamento ora è stato modificato a sinistra poiché questo è l’allineamento di default nel caso di formato testuale. Ultimo esperimento: con lo stesso numero provate a cambiare formato ed a inserire quello “Data”: cosa è accaduto? Questo dovrebbe farvi capire che differenza c’è tra il contenuto della cella e la sua rappresentazione.

Credo che il modo migliore per capire qualsiasi cosa sia attraverso l’approccio pratico, ecco perché ho intenzione di spiegarvi cosa sono i riferimenti con un’altro esperimento; seguitemi programma alla mano.

Scegliete una qualsiasi casella e inserito sempre il famigerato numero 40544, avendo cura di controllare che il suo formato sia di tipo Generale, ora spostatevi su di un’altra cella ed inserite al suo interno un uguale (=) seguito dall’identificatore dalla prima cella. Per intenderci supponendo di aver inserito il numero nella cella A1, inserite in un’altra cella testo “=A1″ (da ora in poi non vi ricorderò di escludere gli apici dal contenuto) e premete Invio. Potete vedere che l’ultima cella modificata visualizzerà lo stesso valore di quella A1, questo perché avete appena creato un riferimento alla cella A1. Il metodo di creazioni di riferimenti è semplicissimo, basta inserire un uguale seguito dall’identificatore della cella alla quale ci si vuole riferire.
Possiamo notare che in ciascuna cella nella quale facciamo un semplice riferimento è possibile impostare un formato diverso da quello della originale: questo perché il formato è un parametro locale.  L’immagine al lato è un esempio di quello che vi ho appena esposto, la casella A1 è quella di origine per tutte le altre, tuttavia il formato delle altre è differente anche per quanto riguarda il carattere ed il colore visualizzato, che sono parametri di formato variabili su cui ci soffermeremo in un’altra lezione.

Senza volerlo lavorando con i riferimenti abbiamo utilizzato inconsciamente uno strumento ben più potente di quanto si possa immaginare: le formule. I riferimenti singoli sono il tipo più semplice di formula che esiste. Il modo per poter comunicare al programma che il contenuto di una casella è una formula è inserendo come primo carattere un uguale. Mentalmente è utile suddividere le caselle in due tipologie, quelle che contengono dati (e.g. “1″, “testo”) e quelle che contengono formule (ad esempio “=1″ o “=A1″) in quanto iniziano con un uguale: le prime sono passive, le altre sono attive!

Proviamo a scrivere un’altra semplice formula di tipo matematico:

  • nella casella A1 inseriamo il valore 10
  • nella casella A2 inseriamo il valore 5
  • nella casella A3 inseriamo la formula =A1/A2
Quello che abbiamo ottenuto è ovviamente, la divisione tra il numero nella casella A1 e quello nella casella A2 e aggiornando i valori di queste caselle verrà aggiornato automaticamente il risultato contenuto nella cella A3. L’uso naturale di Excel è quindi quello dei calcoli matematici e possiamo utilizzare un certo livello di espressione naturale all’interno di una singola cella senza discostarci troppo dalla grafia normale su carta e penna.  Inserendo in una casella la formula “=((5*10)/5)^2″ otterremo il risultato della corrispondete espressione specificando che il simbolo “^” è l’indicatore comune di elevamento a potenza.

Per questa lezione abbiamo terminato, avendo illustrato basilarmente dei concetti che riutilizzeremo in maniera massiccia più avanti nel corso.

L'articolo Formato celle, riferimenti e formule: Excel (1) proviene da prometheusproject.

]]>
http://blog.prometheusproject.it/formato-celle-riferimenti-formule-excel-1/feed/ 0
Apache Reverse Proxy http://blog.prometheusproject.it/apache-reverse-proxy/ http://blog.prometheusproject.it/apache-reverse-proxy/#respond Wed, 26 Jul 2017 08:55:34 +0000 http://blog.prometheusproject.it/?p=891 In Linux c’è la possibilità di configurare un Apache Reverse Proxy. Esistono anche altri prodotti a tale scopo, che esamineremo successivamente. Abilitiamo innanzitutto il pacchetto EPEL: #rpm -ivh http://www.nic.funet.fi/pub/mirrors/fedora.redhat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm #yum install libxml2-devel In RedHat/CentOS, installiamo il pacchetto Apache e le relative dipendenze per renderlo a tutti gli effetti un Reverse Proxy. #yum install httpd #yum install libxml2-devel #yum… Read More »

L'articolo Apache Reverse Proxy proviene da prometheusproject.

]]>
In Linux c’è la possibilità di configurare un Apache Reverse Proxy. Esistono anche altri prodotti a tale scopo, che esamineremo successivamente.
Abilitiamo innanzitutto il pacchetto EPEL:

#rpm -ivh http://www.nic.funet.fi/pub/mirrors/fedora.redhat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm
#yum install libxml2-devel

In RedHat/CentOS, installiamo il pacchetto Apache e le relative dipendenze per renderlo a tutti gli effetti un Reverse Proxy.

#yum install httpd
#yum install libxml2-devel
#yum install mod_proxy_html

Assicuriamoci che nel file principale di configurazione di Apache (/etc/httpd/conf/httpd.conf) siano abilitati i seguenti moduli:

LoadModule  proxy_module         modules/mod_proxy.so
LoadModule  proxy_http_module    modules/mod_proxy_http.so
LoadModule  headers_module    modules/mod_headers.so
LoadFile /usr/lib64/libxml2.so

E che esista il file /etc/httpd/conf.d/proxy_html.conf dove al suo interno sono caricati i moduli:

LoadModule      proxy_html_module       modules/mod_proxy_html.so
LoadModule      xml2enc_module          modules/mod_xml2enc.so

Procediamo ora alla configurazione vera e propria. Prendiamo in considerazione i parametri:

IP Reverse Proxy: 192.168.144.230
URL Risorsa Web: http://test.home.dom/
URL da pubblicare: http://192.168.144.230/home/

Dobbiamo fare in modo che accedendo all’indirizzo http://192.168.1.230/home/ in realtà accederemo alla risorsa http://test.home.dom/ (senza che il client mostri il reale sito).
Innanzitutto settiamo il parametro “ProxyRequests” su “Off” in maniera tale da non rendere il nostro server un proxy Aperto e dichiariamo le variabili “ProxyPass” e “ProxyHTMLURLMap”, fondamentali per il nostro scopo:

ProxyRequests Off
ProxyPass     /home/    http://test.home.dome/
ProxyHTMLURLMap http://test.home.dom   /home/

Andiamo ora ad aprire una sezione “<Location>” dove indicheremo tutte le direttive da attribuire al path /home/ e in cui all’interno scriveremo la seguente configurazione:

        <Location /home/>
        ProxyPassReverse /
        ProxyHTMLEnable On
        ProxyHTMLURLMap /       /home/
        RequestHeader   unset   Accept-Encoding
        </Location>

Avviamo il servizio Apache

#/etc/init.d/httpd start

E proviamo ad accedere alla risorsa http://192.168.144.230/home/.
Il gioco è fatto!!!!

L'articolo Apache Reverse Proxy proviene da prometheusproject.

]]>
http://blog.prometheusproject.it/apache-reverse-proxy/feed/ 0
Oblogout – Rifacciamo il look al nostro logout su XFCE http://blog.prometheusproject.it/oblogout-rifacciamo-look-al-nostro-logout-xfce/ http://blog.prometheusproject.it/oblogout-rifacciamo-look-al-nostro-logout-xfce/#respond Tue, 25 Jul 2017 01:15:31 +0000 http://blog.prometheusproject.it/?p=15901 Una volta installata la nostra meravigliosa Distro con XFCE4, noteremo l’orrendo e scarno menù di uscita (logout). Io stesso stavo cercando un modo più “carino” per spegnere, riavviare, ibernare la mia distro, e mi sono imbattuto con oblogout, un applicazione per effettuare le operazioni di uscita su OpenBox. Colpito dalla sua semplice grafica, molto più carina di quella standard,… Read More »

L'articolo Oblogout – Rifacciamo il look al nostro logout su XFCE proviene da prometheusproject.

]]>
Una volta installata la nostra meravigliosa Distro con XFCE4, noteremo l’orrendo e scarno menù di uscita (logout). Io stesso stavo cercando un modo più “carino” per spegnere, riavviare, ibernare la mia distro, e mi sono imbattuto con oblogout, un applicazione per effettuare le operazioni di uscita su OpenBox. Colpito dalla sua semplice grafica, molto più carina di quella standard, mi sono deciso ad installarlo e a configurarlo per Xfce. Risultato? ovviamente positivo..

Vediamo come installarlo e configurarlo su ArchLinux.

Oblogout è disponibile in Community e installabile attraverso il comando:

$ yaourt -Sy oblogout

completata l’installazione del pacchetto salviamo il file di configurazione di default con il comando:

# cp /etc/oblogout.conf /etc/oblogout.conf_default

una volta fatta la copia di backup del file, editate il file con il vostro editor preferito, ad esempio vim:

# vim /etc/oblogout.conf

e modifcate il file rendendolo uguale a questo:

#
# Configuration file for oblogout on ArchLinux + Xfce4
#

[settings]
usehal = false

[looks]
opacity = 70
bgcolor = black
buttontheme = oxygen
buttons = cancel, logout, restart, shutdown, suspend, hibernate, lock

[shortcuts]
cancel = Escape
shutdown = S
restart = R
suspend = U
logout = L
lock = K
hibernate = H

[commands]
shutdown = xfce4-session-logout --halt
restart = xfce4-session-logout --reboot
suspend = xfce4-session-logout --suspend
hibernate = xfce4-session-logout --hibernate
lock = xflock4
logout = xfce4-session-logout --logout

salvate il file di configurazione. Completata questa modifica procediamo nel cambiare il metodo di spegnimento di default con oblogout. Per fare questo editate con il vostro editor preferito il file della voce di uscita del menu:

# vim /usr/share/applications/xfce4-session-logout.desktop

e sostituite la stringa:

Exec=xfce4-session-logout

con:

Exec=oblogout

salvate il file e il vostro logout avrà sicuramente un nuovo stile!!!

Save

L'articolo Oblogout – Rifacciamo il look al nostro logout su XFCE proviene da prometheusproject.

]]>
http://blog.prometheusproject.it/oblogout-rifacciamo-look-al-nostro-logout-xfce/feed/ 0
Configurare Postfix come smtp Gmail Relay http://blog.prometheusproject.it/configurare-postfix-smtp-gmail-relay/ http://blog.prometheusproject.it/configurare-postfix-smtp-gmail-relay/#respond Mon, 24 Jul 2017 18:07:35 +0000 http://blog.prometheusproject.it/?p=15897 Può essere molto comodo, come ad esempio per chi utilizza servizi come zoneminder, rtorrent ecc, avere in casa una sorta di “Gmail Relay” per inviare posta dal proprio account Gmail. In questa guida vedremo come configurare postfix per inviare email con il nostro account di posta @gmail.com. Installiamo innanzi tutto i pacchetti necessari: # pacman -Sy postfix ca-certificates una volta completata… Read More »

L'articolo Configurare Postfix come smtp Gmail Relay proviene da prometheusproject.

]]>

Può essere molto comodo, come ad esempio per chi utilizza servizi come zoneminder, rtorrent ecc, avere in casa una sorta di “Gmail Relay” per inviare posta dal proprio account Gmail. In questa guida vedremo come configurare postfix per inviare email con il nostro account di posta @gmail.com.

Installiamo innanzi tutto i pacchetti necessari:

# pacman -Sy postfix ca-certificates

una volta completata l’installazione entriamo nella directory di configurazione di postfix:

# cd /etc/postfix

e salviamo il file di configurazione di default con i comando:

# cp main.cf main.cf-old

a questo punto cancelliamo l’intero contenuto del file main.cf con il comando:

# echo "" > main.cf

e inseriamo all’interno del file main.cf le seguenti righe:

daemon_directory = /usr/lib/postfix

myorigin = dominio-vero.com
mydomain = dominio-vero.com
myhostname = dominio-vero.com

smtp_generic_maps = hash:/etc/postfix/generic
header_checks = regexp:/etc/postfix/header_checks

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd_gmail
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_enforce_tls = yes

disable_dns_lookups = yes

message_size_limit = 35651584

smtp_destination_rate_delay = 60
relay_destination_rate_delay = 60

mynetworks = 127.0.0.1

alias_maps = hash:/etc/aliases

Salviamo il file main.cf sostituendo ovviamente “dominio-vero.com” con il vostro nome del dominio (es. pippo.dyndns.org), se non lo si ha è possibile lasciarlo invariato.

Creiamo il file sasl_passwd_gmail con il comando:

# touch /etc/postfix/sasl_passwd_gmail

e inseriamo all’interno:

[smtp.gmail.com]:587             username@gmail.com:miapassword

sostituendo ovviamente “username” e “miapassword” con le nostre credenziali gmail.

Aggiungiamo alla fine del file /etc/postfix/header_checks le seguenti righe:

/^To:.*@hostname.localnet/ REDIRECT username@gmail.com 
/^From:(.*@dominio-vero.com[>]*)/ PREPEND Reply-To:$1

sostituendo anche questa volta “username” con il nostro account gmail e “dominio-vero.com” con il nome inserito anche nel main.cf. Salviamo e aggiungiamo alla fine del file /etc/postfix/generic le seguenti righe:

root@dominio-vero.com         username@gmail.com
root@hostname.localnet        username@gmail.com
sudoer@hostname.localnet    username@gmail.com

sostituendo anche qui “username” e “dominio-vero.com“.

A questo punto lanciamo, come utente root, i comandi:

# postmap /etc/postfix/generic
# postmap /etc/postfix/sasl_passwd_gmail
# cat /etc/ssl/certs/Equifax_Secure_CA.pem >/etc/postfix/cacert.pem
# ln -s /etc/postfix/aliases.db /etc/aliases.db
# postconf -e alias_maps=hash:/etc/aliases

Avviamo postfix con il comando:

# systemct start postfix

e rendiamolo eseguibile all’avvio con il comando:

# systemctl enable postfix

A questo punto se andato tutto bene, possiamo testare inviando una mail con il comando:

$ echo "testo del messaggio" | mail -r "username@gmail.com" -s "Oggetto della mail" destinatario@email.com

per verificare il corretto invio possiamo in ogni momento visionare il log /var/log/mail.log e tenere traccia delle email inviate.

Se si vuole inviare email da remoto, ad esempio da un pc delle stessa rete, bisogna per prima cosa inserire nel file main.cf in mynetworks l’ip del cilent, riavviare postfix e nel client lanciare il comando:

$ echo "testo del messaggio" | mail -r "username@gmail.com" -s "Oggetto della mail" -S smtp=IPPOSTFIX destinatario@email.com

sostituendo “IPPOSTFIX” con l’ip della macchina dove abbiamo configurato postfix.

Se vogliamo abilitare tutta la rete, è possibile inserire nella direttiva mynetworks tutta la subnet, ad esempio 192.168.0.0/24.

Save

L'articolo Configurare Postfix come smtp Gmail Relay proviene da prometheusproject.

]]>
http://blog.prometheusproject.it/configurare-postfix-smtp-gmail-relay/feed/ 0
OpenID: estensioni per scambio di informazioni http://blog.prometheusproject.it/openid-estensioni-scambio-informazioni/ http://blog.prometheusproject.it/openid-estensioni-scambio-informazioni/#respond Sun, 23 Jul 2017 00:38:00 +0000 http://blog.prometheusproject.it/?p=15889 Le specifiche di OpenID che abbiamo introdotto in un precedente articolo potrebbero non essere la panacea per il fatto che pù di qualche provider usa degli Identifier per gli utenti, che non sono quanto di più leggibile possa esistere.La questione è molto semplice ed intuitiva: perchè non permettere di ottenere anche ulteriori informazioni oltre che il solo identificatore?… Read More »

L'articolo OpenID: estensioni per scambio di informazioni proviene da prometheusproject.

]]>
Le specifiche di OpenID che abbiamo introdotto in un precedente articolo potrebbero non essere la panacea per il fatto che pù di qualche provider usa degli Identifier per gli utenti, che non sono quanto di più leggibile possa esistere.La questione è molto semplice ed intuitiva: perchè non permettere di ottenere anche ulteriori informazioni oltre che il solo identificatore?


L’estensione Attribute Exchange serve proprio a questo, ad ottenere una serie di attributi ovvero delle unità di informazione sull’identità del soggetto autenticato.

La specifica in realtà prevederebbe anche la possibilità di impostare o aggiornare tali attributi da remoto, tuttavia più di qualche implementazione non lo permette per ragioni di sicurezza.
Se vi ricordate nell’ultimo post su OpenID eravamo riusciti ad ottenere solamente informazione sull’avvenuto login dell’utente, ripendiamo il codice precedente aggiungendo la possibilità di ottenere qualche informazione personale sempre tramite la libreria LightOpenID.

Quello che vogliamo ottenere è la possibilità di avere Nome e Cognome della persona che si sta loggando ed inoltre ottenere la sua e-mail; per fare questo dobbiamo impostare un array in cui specificheremo ciò.
Non tutti i provider però memorizzano gli stessi dati con la stesso tipo di identificatore di attributo, concentriamoci sui più noti Yahoo e Google:

  • Yahoo: permette di ottenere l’email dell’utente tramite l’attributo “contact/email” e permette di avere nome e cognome con quello “namePerson”;
  • Google: ugualmente permette di ottenere l’email con “contact/email” ma consente di avere nome e cognome  rispettivamente con “namePerson/first” e “namePerson/last”‘.

Predisponiamo quindi gli array nei due diversi casi:

 if ($provider == "google") //imposto il corretto url
{
$ax_attributes=array('namePerson/first','namePerson/last','contact/email');
$provider_url = "https://www.google.com/accounts/o8/id";
}
elseif ($provider == "yahoo")
{
$provider_url = "http://www.yahoo.com/";
$ax_attributes=array('namePerson','contact/email');
}

ora è necessario dire a Light OpenID di richiedere ai provider questi attributi, impostando la proprietà “required” della classe LightOpenID :

$openid->required = $ax_attributes;

et voilà il gioco è fatto.

Ci basterà leggere gli attributi nel caso di buon esito:
$attributes = $openid->getAttributes(); //preleviamo gli attributi
$email = $attributes["contact/email"];
if (isset($attributes["namePerson/first"]))
$user = $attributes["namePerson/first"] . "  " . $attributes["namePerson/last"];
else
$user = $attributes["namePerson"];

Abbiamo sviscerato ben bene i principi di base e non solo di OpenID, ora sta a voi sfruttarlo appieno, ripostiamo per completezza tutto il codice dell’esempio così che potete prendervi spunto

<!--?php require 'openid.php'; if (!isset($_REQUEST["action"])) { //Stampo la form ?--></pre>
<form action="?action=login" method="post"><input id="provider_google" type="radio" name="provider" value="google" checked="checked" />
 <label for="provider_google">Google</label>
 <input id="provider_yahoo" type="radio" name="provider" value="yahoo" />
 <label for="provider_yahoo">Yahoo</label>
 <button>Log In</button></form>
<pre>
<!--?php } else {     //Eseguo operazioni di login     $openid = new LightOpenID('localhost'); //inizializzo la classe di comunicazione di LightOpenID     if(!$openid----->mode)
    {
        $provider = $_REQUEST["provider"]; //prelevo il provider

        if ($provider == "google") //imposto il corretto url
        {
            $ax_attributes=array('namePerson/first','namePerson/last','contact/email');
            $provider_url = "https://www.google.com/accounts/o8/id";
        }
        elseif ($provider == "yahoo")
        {
            $provider_url = "http://www.yahoo.com/";
            $ax_attributes=array('namePerson','contact/email');
        }
        $openid->required = $ax_attributes;
        $openid->identity = $provider_url;
        header('Location: ' . $openid->authUrl()); //Rendirizzamento verso L'endpoint URL del Provider
    }
    else
    {
        if ( $openid->mode =="cancel" || !$openid->validate())
        { //in caso di annullamento
?>L'utente non si è loggato correttamente  <a href="?"> riprova </a><!--?php         } else         {             $attributes = $openid----->getAttributes();
            //preleviamo gli attributi
            $email = $attributes["contact/email"];
            if (isset($attributes["namePerson/first"]))
                $user = $attributes["namePerson/first"] . "  " . $attributes["namePerson/last"];
            else
                $user = $attributes["namePerson"];
        ?>
L'utente<strong><!--?php echo  $user;  ?--></strong>
 ed email<strong></strong>  ha effettuto l'accesso<!--?php <br ?--> }
 }
}

Save

Save

L'articolo OpenID: estensioni per scambio di informazioni proviene da prometheusproject.

]]>
http://blog.prometheusproject.it/openid-estensioni-scambio-informazioni/feed/ 0