I pensieri sulla nuvola

Ho iniziato a tenere un blog 12 anni fà … e scriverlo fà una certa impressione. L’idea dietro ad un blog era di condividere, pensieri, media, esperienze … internet si è evoluta e c’è un app per condividere i link, un social per le cose da nerd, un flusso per i pensieri brevi, un album per le foto artistiche, e una cerchia per le foto destinate agli amici. E i blog personali sono finiti in secondo piano. Ma credo che l’idea sia ancora sensata.

La sensazione nell’affidare questa cose ad un sistema esterno è che ne perdi completamente il controllo e il possesso. Queste cose sono poco più che rumore sia chiaro, ma è il mio rumore. Vorrei poterlo rileggere anche se 4square chiude. Anche se facebook cambia policy. Vorrei condividerle anche con chi non utilizza queste piattaforme, non tutto, ma alcune cose si.

Quasi tutte queste piattaforme mettono a disposizione delle api per poter leggere in formato strutturato le informazioni che postiamo percui mi è venuto voglia di riutilizzare il blog come repository delle mie cose inrilevanti grazie ad una manciata di programmi adibiti allo scopo.

Il primo obbiettivo è Delicious, che già importo mediante yahoo pipes e un plugin di wordpress. L’importatore self-made migliorerà  la frequenza e sarà in grado di trasformare i tag di Delicious in tag di WordPress.

A seguire: twitter, 4square e instagram.

P.S. : Per seguire lo stato dei lavori https://bitbucket.org/sgalliani/socialimporter – Binari, Readme, Buildfile, Howto e similia saranno disponibili solo se e quando il progetto avrà un livello minimo di maturità.

Retrofit pomello M per BMW Z4 E85

Sostituire un pomello di una BMW in linea di massima è una operazione molto semplice. Ne compri uno su ebay, dopo qualche giorno arriva a casa tua, tiri forte il pomello vecchio e usurato, installi quello nuovo spingendo.

La cosa si fà un pò più complessa se si vuole installare un pomello illuminato, serie M, su una vettura non M, nel mio caso una Z4 E85 3.0i. Andiamo in ordine :

  1. Comprare un pomello, originale. Il concessionario, a meno di favori personali, non dovrebbe vendervelo perchè non è compatibile con la vostra vettura. E poi se lo fà pagare un pò troppo. Ebay (germania) è la soluzione, basta sapere due paroline di tedesco. In genere i teutonici si riferiscono a questo componente con le parole “Schaltknopf” o “Schaltknauf” per cui potete combinare una di queste due parole con BMW, Z4, E85 o M. Iniziare la ricerca su Ebay.de in genere dà maggiori risultati. Se il venditore non dichiara esplicitamente la spedizione in tutta europa si può sempre chiedere.
  2. Comprare (almeno) 2 rubacorrente e 2 “mammuth”. Il ferramenta o il negozio di bricolage sono vostri amici. I rubacorrente hanno questo aspetto :
    rubacorrente
  3. Smontare il pomello vecchio : basta mettere in seconda e tirare … avendo cura che il vecchio pomello non vi finisca in faccia una volta sganciato.
  4. Smontare la cuffia del cambio : è ad incastro, basta spingere all’interno
  5. Rimuovere la gommapiuma e il posacenere … il risultato a questo punto dovrebbe essere questo :
    2015-04-19 12.23.26
  6. Ora se guardiamo sotto il posacenere possiamo vedere una vite a croce e alcuni fili :
    2015-04-19 12.23.43la vite è da rimuovere e i fili sono il nostro obbiettivo per avere la corrente per far funzionare la luce del pomello.
  7. La parte di plancia con il posacenere, l’accendino, i comandi della capotte elettrica, del controllo di stabilità e di eventuali altri optional è agganciata solo con la vite nella foto per cui basta tirare con un minimo di attenzione e dovrebbe sganciarsi :
    2015-04-19 16.28.52
  8. Ora ruotandola sotto si possono vedere i collegamenti dell’accendisigari e della luce del posacenere. Io ho scelto (e consiglio) di agganciarsi al posacenere in modo che il pomello si illumini solo quando sono accese le luci.
    2015-04-19 16.29.37
  9. Individuiamo i due cavi, uno marrone e uno grigio rosso, entrambi sottili (quelli grossi sono per il l’accendisigari) e agganciamo il pomello, marrone con marrone, striato con striato. I cavi del pomello devono ovviamente passare da sotto e non da sopra (era necessario dirlo?) e se non volete fare una ulteriore giunzione la cuffia del cambio deve essere già infilata. Io però lo sconsiglio perché poi diventa molto complesso lo smontaggio.
    I rubacorrente hanno una parte “passante” che si aggancia al nostro obbiettivo e una parte terminale in cui infiliamo il cavo del pomello. Tenendo tutto in posizione si chiude il rubacorrente con una pinza e si chiude definitivamente col fermo.
    2015-04-19 16.41.54
  10. Se come me avete evitato di infilare la cuffia prima di installare i rubacorrente dopo avere riposizionato il modulo della plancia e la gommapiuma abbiamo la posizione ideale per tagliare i cavi e installare i due mammuth
    2015-04-19 17.00.39

A questo punto è fatto … aspettate la sera per verificare l’effetto !

Pulizia canali di scolo BMW Z4

8196071469_a3027bc8cf_zUno dei problemi noti della prima serie della BMW Z4 (E85) è l’otturazione dei canali di scolo della capotte. Percui seguendo la guida in allegato ( Manutenzione Cappotte E85 pulizia scarichi (ENG) ) ho provveduto a far pulizia. La guida è abbastanza chiara anche se ho trovato difficoltà nel rimuovere i PIN, l’autore della guida li ha rotti e sostituiti … io con cun pò di pazienza e molto svitol sono riuscito a rimuoverli senza romperli.

Inoltre il tappo in gomma è abbastanza difficile da vedere, bisogna mettere effettivamente la testa sotto la macchina se no non si vede, percui è opportuno avere i cunei o almeno un crick idraulico affidabile. Da evitare i crick meccanici.

I canali comunque erano ragionevolmente puliti… solo qualche sassolino. Evidentemente l’hard top e il garage aiutano.

Un controllo dopo 9 anni era comunque opportuno farlo.

Addio all’hosting parte 4 – Ottimizzazione

PHP ha questo fastidioso problema che è stato concepito come se la RAM e la compilazione fossero il peccato originale.

Ne consegue che, con l’approccio di base, quando chiedete una pagina il povero webserver lancia PHP indicandogli la pagina richiesta, questo si legge lo script, processa tutti i file da includere, in modo ricorsivo, e quando ha finalmente lo script completo, lo trasforma in codice eseguibile (a.k.a. lo compila just in time) e come ultima cosa lo esegue. La cosa è immensamente inefficiente se deve essere fatta ogni volta che viene richiamata una pagina. Sarebbe bello delegare ad altri il linking e la compilazione per lasciare al sever solo l’esecuzione ma questo è molto complesso da fare con PHP (anche se qualcuno lo ha fatto) percui ho scelto l’approccio più tradizionale della cache.

Ci sono due moduli che possono venirci in aiuto APCu e OPCache.

Il concetto di base è di non rieleggere (e possibilmente non ricompilare) file messi in cache.
OPCache in particolar modo memorizzare il bytecode risultante dalla compilazione delle pagine in memoria e quindi raggiunge l’obbiettivo dell’efficienza. Su un server di produzione con aggiornamenti poco frequenti si possono calibrare le impostazioni per ricompilare il meno possibile.

La mia configurazione di OPCache assomiglia a questa :

zend_extension=/usr/lib64/php/modules/opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=120
opcache.blacklist_filename=/etc/php.d/opcache*.blacklist

In particolar modo la frequenza di rivalidazione a 2 minuti mi è sembrata ragionevole ma può essere ulteriormente aumentata. Il valore è in secondi, più sale e più aumentano gli hit della cache, ma aumenta anche il tempo che passa tra quando una modifica viene caricata sul server quando effettivamente diventa visibile.

OPCache è incluso di default a partire da PHP 5.5, ma nella mia installazione ho ancora PHP 5.4 quindi è necessario installarlo separatamente.

Come risultato ho un Time to first byte per wordpress di 0,4s e download dell’html in 0.6s. In hosting (dove immagino ci siano persone che pensano molto come ottimizzare i server in quanto ottimizzazione uguale minor costi) 0,45s e 0,8s

Con phpBB il Time to first byte scende addirittura a 0,13s e html completo in 0,52s .

Addio all’hosting parte 3

Installiamo un pò di tool di base

yum install net-tools
yum install ftp

yum install wget

wget è particolarmente comodo per clonare un intero archivio ftp, ad esempio dall’hosting precedente. La sintassi è questa :

wget -r –user=”user@login” –password=”password” ftp://server.com/

Alla fine l’installazione di test di questo blog si può vedere qui.

Ora il problema principale sarebbe abbassare il tempo del primo byte fornito, che al momento si assesta sui 1,5-1,7 secondi nonostante il carico del server sia nullo.

La valutazione delle performa può essere fatta su WebPagetest.

Una guida interessante si puo trovare a questo link anche se non sembra utile per abbassare il tempo del primo byte. Apache Bench si trova nel paccheto httpd-tools.
Il problema dei test proposti è però l’eccessivo parallelismo. Impostare a 1000 apache bench con 32 processi php-fpm in ascolto mi sembra assurdo e infatti falliscono tutti (per altro senza che apache bench se ne accorga). Di mio ho impostato minimo 5, massimo 24. E con 24 richieste parallele la velocità è effettivamente molto compromessa.