Oggi un’installazione di WordPress ospitata su Aruba ha iniziato a dare errori in area di amministrazione: impossibile accedere alla pagina degli aggiornamenti e alla gestione dei plugin, errori salvando nuove bozze.

Provato nell’ordine a:

  • Rinominare la cartella wp-content/plugins, nel dubbio disattivati anche i plugin via database.
  • Ripristinare i permessi in Aruba da Pannello di controllo hosting Linux → Strumenti e impostazioni → Riparazione Permissions [sigh].
  • Sostituire tutti i file del core di WordPress con quelli di un pacchetto pulito.

Il log di errori, accessibile via Pannello di controllo hosting Linux → Strumenti e impostazioni → Mostra log degli errori, riporta “End of script output before headers” per ogni pagina di errore visualizzata.

A questo punto ho aperto un ticket di assistenza con scarse speranze di soluzione.

Nel frattempo l’illuminazione è arrivata via Twitter da San Beggi: controlla la versione di PHP.

L’ho trovata impostata a 5.2.x, e visto che il tutto ha sempre funzionato dubito sia mai stata impostata a quel valore, considerato anche questo post di “solo” 4 anni fa.

Morale della favola: controllate la versione di PHP, anche a prescindere da eventuali errori.


È arrivato il tempo di cambiare uno dei notebook di casa, ormai lento oltre ogni limite di umana sopportazione (ha ancora Windows Vista). Girando un po’ in rete ho trovato un HP abbastanza interessante: HP 250 G3, monitor 15.6″, Intel Core i5-4210U, 4 GB di RAM, hard-disk 500 GB, DVD±RW, 1xUSB 3.0, Free DOS. Insieme al notebook ho ordinato un SSD da 240 GB, visto che è il componente che influisce maggiormente sulla velocità finale.

Il computer è “onesto”, l’area della tastiera sembra un po’ troppo flessibile ma in generale ha un buon rapporto qualità/prezzo. Tutto bene, finché non scopri cosa tocca fare per sostituire l’hard-disk (non esiste un cassetto estraibile con l’hard-disk o uno scomparto per la RAM):

  • Togliere tutte le viti del fondo. Tocca anche scollare i due piedini posteriori, visto che due viti sono nascoste lì sotto.
  • Sfilare il masterizzatore DVD.
  • Sganciare la tastiera e scollegarla. Non lo si capisce bene da alcuni video, ma la piattina non è “incastrata” nel connettore (non bisogna tirarla), bisogna ruotare di 90° il connettore grigio verso l’alto sbloccando la piattina.
  • Sganciare i connettori (piattine) di touchpad e pulsante di alimentazione.
  • Togliere altre 4 viti e sganciare il coperchio superiore.

HP 250 G3

Personalmente credo di non aver mai visto un notebook progettato in modo più assurdo. Come detto il computer è onesto per il prezzo, ma decisamente sconsigliato se vi spaventate di fronte a questo tipo di operazione, soprattutto su una macchina nuova.


Questa mattina ho scoperto che il codice utilizzato da anni per visualizzare in WordPress i video recuperati da un feed RSS di YouTube ha smesso di funzionare. Invece di visualizzare il video corretto, ci si trova davanti a questo avviso.

Ecco il codice aggiornato e ripulito. Il videoId è disponibile direttamente nell’XML del feed.

<?php
include_once(ABSPATH . WPINC . '/feed.php');

$get_videos = function ($feed_data) {
    $output = "<ul>\n";
    if (! $feed_data) {
        $output .= "<li>Nessun video disponibile</li>\n";
    } else {
        foreach ($feed_data as $item) {
            $youtubetitle = $item->get_title();
            $video_id = $item->get_item_tags(
                'http://www.youtube.com/xml/schemas/2015',
                'videoId'
            );
            $youtubeid = $video_id[0]['data'];

            $output .= "<li>\n";
            $output .= '<iframe width="240" height="176" src="https://www.youtube.com/embed/' .
                       $youtubeid . '?controls=0&amp;showinfo=0" frameborder="0"></iframe>';
            $output .= "<span>{$youtubetitle}</span>\n";
            $output .= "</li>\n";
        }
    }
    $output .= "</ul>\n";

    return $output;
};

?>

<h3>Video</h3>
<?php
    $url = **** URL del feed RSS****;
    $rss = fetch_feed($url);
    if (! is_wp_error($rss)) {
        // Verifica se l'oggetto è stato creato correttamente
        // Individua il numero di video presenti, al massimo leggine 3.
        $maxitems = $rss->get_item_quantity(3);
        // Crea un array di tutti gli elementi (il primo elemento ha indice 0).
        $rss_items = $rss->get_items(0, $maxitems);
    }
    echo $get_videos($rss_items)
?>

Pedala che ti passa

19 aprile 2015

Tra i propositi per il 2015 c’era quello di correre almeno 100 km al mese. Sarà dura, visto che mi è ufficialmente tornata la scimmia per la MTB, e mi sono finalmente deciso a cambiare la vecchia (12 anni) con una 29″.

New MTB

Per il momento il 2015 segna 326 km di corsa, 618 km in mtb. Per quest’ultimo dato la differenza sostanziale è il dislivello totale: 10.127 m (fatti in buona parte su sterrato), contro i 13.401 m (per 1.121 km) del 2014.


Appunti per tecnici anziani e smemorati: come configurare l’accesso via SSH utilizzando una coppia di chiavi invece di nome utente e password.

Passo 1: generare la chiave

ssh-keygen -t rsa

Personalmente assegno un nome diverso rispetto al predefinito (id_rsa) per capire al volo di che cosa si tratta.

Passo 2: copiare la chiave sul server

Copiare il file via FTP o direttamente via scp

scp /home/UTENTE/.ssh/id_rsa.pub UTENTE_REMOTO@SERVER_REMOTO:.

Effettuare l’accesso al server via SSH (con nome utente e password) e copiare il contenuto della chiave pubblica in .ssh/authorized_keys

cat /home/UTENTE/id_rsa.pub &gt;&gt; /home/UTENTE/.ssh/authorized_keys

Se necessario creare la cartella .ssh prima di lanciare questo comando. Dovrebbe funzionare anche con sss-copy-id, ma su Mac va installato (es. con homebrew).

ssh-copy-id -i /home/UTENTE/.ssh/id_rsa UTENTE_REMOTO@SERVER_REMOTO

Passo 3: modificare .ssh/config in locale per utilizzare la chiave

Host SERVER_REMOTO
User UTENTE_REMOTO
IdentityFile ~/.ssh/id_rsa

Nel file config è possibile utilizzare wildcard, particolarmente utile per le innumerevoli macchine virtuali :-)


Per iniziare una rapidissima panoramica sull’attuale ciclo di sviluppo di Firefox, introdotto a partire dalla versione 5.0 e anche noto come rapid release cycle.

Il ciclo di sviluppo dura 6 settimane, con qualche eccezione causa festività o eventi particolari, ed esistono quattro canali di distribuzione.

Firefox versionsNightly: il più instabile, aggiornato ogni giorno. È consigliato solo a utenti più esperti che, ad esempio, sappiano come gestire più profili ed effettuare backup dei propri dati (Sync aiuta).

Developer Edition (ex Aurora): sufficientemente stabile per l’uso quotidiano, focus sugli sviluppatori web, aggiornamenti quasi quotidiani. Da quando è stata introdotta la versione Developer Edition (novembre 2014), l’opzione predefinita è quella di utilizzare un profilo specifico “dev-edition-default” per questa versione, separato dai profili esistenti.

Beta: stabile, aggiornato due volte a settimana, adatto soprattutto a chi voglia sperimentare in anteprima le novità. Nella prima metà del ciclo (indicativamente fino alla beta 4) è possibile provare caratteristiche che non verranno incluse in release.

Release: la versione consigliata per l’uso quotidiano, aggiornata ogni 6 settimane a meno che non venga distribuita una versione intermedia per problemi di stabilità o sicurezza (es. 36.0.4).

Questa è la situazione attuale (parlando di eccezioni, siamo in un ciclo di sole 5 settimane):

  • Nightly: Firefox 39
  • Developer Edition: Firefox 38
  • Beta: Firefox 37
  • Release: Firefox 36

Lunedì prossimo (30 marzo) è il merge day: Nightly diventa Firefox 40, Firefox 39 passa in Aurora, Firefox 38 in beta e viene ufficialmente distribuito Firefox 37. Il giorno di distribuzione è normalmente il martedì successivo al merge day. Da sempre, anche prima del nuovo ciclo di sviluppo, il martedì è il giorno dedicato all’uscita di nuove versioni o prodotti in Mozilla.

Nightly in italiano?

Sempre più spesso vedo utenti esperti utilizzare Nightly in inglese: mentre le versioni Developer Edition/Beta/Release localizzate in italiano sono facili da scaricare, questo non è purtroppo vero per Nightly.

È possibile scaricare Nightly in italiano direttamente dal server FTP Mozilla utilizzando questo link. Cercate ‘.it’ nell’elenco e selezionate la versione adatta al vostro sistema operativo. La versione localizzata è aggiornata ogni giorno, esattamente come quella inglese. Eventuali nuove stringhe vengono generalmente tradotte nel giro di 1/2 giorni, e potete utilizzare il forum di supporto per segnalare eventuali errori. Un modo semplice per dare il vostro contributo 😉