Creare in Drupal l'archvio della propria timeline di Twitter, utilizzando i moduli Feeds, JSONPath parser e Views

Negli ultimi mesi ho iniziato ad utilizzare Twitter in maniera piuttosto regolare. Talvolta mi è capitato di dover ricercare un link in uno dei tweet che avevo condiviso, ma la procedura non era proprio immediata. Dato poi che è possibile recuperare un massimo di 3200 status (tweets) dalla timeline di Twitter (con le REST API, mentre con le search API solo fino ad una massimo di 1500… ok, prima di arrivare a 3200 status ce ne vuole), ho pensato potesse essere utile avere da qualche parte un comodo archivio consultabile di tutti i tweet postati da me nel tempo. Fare una cosa del genere in Drupal è semplice come configurare un paio di moduli e creare una vista.

Drupal 7: come visualizzare in una vista tutti i campi disponibili di un termine della tassonomia associato al dato nodo

In Drupal 7 i termini della tassonomia si sono evoluti ad entità vere e proprie, o detto in altro modo, hanno ottenuto pari dignità di un qualunque nodo. Questo significa che è possibile arricchire ciascun termine con dei campi aggiuntivi, un po' come si era abituati a fare con i nodi e CCK in Drupal 6. In tal senso quindi è possibile ad esempio aggiungere un'immagine, un link, ecc…, a ciascun termine della tassonomia.

La gestione dei campi viene fatta a livello di vocabolario, quindi tutti i termini del medesimo vocabolario avranno a disposizione i medesimi campi (e questo è tutto sommato piuttosto logico).

Impostare l'hostname in Ubuntu Server

In Ubuntu Linux, per personalizzare il proprio nome di host senza incorrere in errori, è necessario non solo editare il file /etc/hostname, specificando il nome desiderato per la propria macchina, ma mappare anche il nome appena inserito con l'indirizzo IP del proprio host, ovvero 127.0.0.1 all'interno del file /etc/hosts.

Specificando che il nuovo hostname si riferisce alla macchina corrente, si evita il verificarsi di errori quali "unable to resolve host…".

Monitorare in modo centralizzato i propri server con Munin

Monitorare in modo centralizzato i propri server con Munin

Con Munin (qui la pagina Munin su Wikipedia, utile per chi non lo conoscesse) è possibile monitorare in modo centralizzato un numero a piacere di server remoti. A tal fine è necessario installare sulla macchina che fungerà da server di monitoraggio la versione server di Munin, mentre sulle altre macchine (chiamate nodi) sarà sufficiente installare il solo client. Si tratterà quindi di configurare il server per farlo connettere alle macchine remote, e configurare le macchine remote per accettare le connessioni in entrata da tale server.

Western Digital Caviar Black 1TB (WD1002FAEX)

In attesa che i prezzi degli SSD scendano ad un valore accettabile, ho fatto un upgrade del disco di sistema sostituendo un più che dignitoso Western Digital da 640GB (WD6400AAKS) con un nuovo Caviar Black da 1TB, modello WD1002FAEX. Il costo decisamente contenuto, poco più di una sessantina di euro.

Drupal 7 Omega Theme, installazione di un subtheme utilizzando drush e Omega Tools

La versione 3 del tema Omega per Drupal 7 si sta rivelando estremamente interessante, in quanto supporta in modo nativo lo sviluppo di temi con tecniche di Responsive Web Design (se non sapete di cosa sto parlando, leggetevi Responsive Web Design pubblicato da ABookApart). Creare un sottotema da utilizzare per lo sviluppo del proprio tema è un'operazione estremamente semplice utilizzando il modulo Omega Tools e Drush.

Errore in Drupal 7 con APC (Alternative PHP Cache)

Errore in drupal 7 con include_once() e require_once() con APC

Drupal 7 sembra un tantino più "delicato" rispetto alla versione precedente per quanto riguarda le impostazioni di configurazione della cache APC. L'installazione di Drupal 7 su di un server nel quale girano senza problemi siti web sviluppati con la versione 6 e con la 5 dava errori già in fase di installazione come si può vedere dall'immagine qui a lato.

Drupal: logging su database e logging su file. Alcune considerazioni sulle prestazioni.

Il database logging in Drupal può risultare piuttosto oneroso in termini di risorse, soprattutto nel caso di siti web ad alto traffico o con un numero molto elevato di contenuti.

Un articolo di Dries pubblicato sul blog di Aquia (http://acquia.com/blog/playing-new-relic-acquia-hosting) aveva messo in risalto come il database logging da solo potesse essere responsabile del 50% del carico sul server MySQL.

Dopo aver installato New Relic su di un server che ospita per la gran parte siti Drupal, ho potuto verificare l'impatto sul db dovuto ad accesslog remposabile da solo di più del 20% di carico.

Script per effettuare il backup di database MySQL via FPT e/o via email.

Vorrei segnalare questo script molto interessante, in cui mi sono imbattuto mentre lavoravo all'aggiornamento della procedura di backup automatico dei database MySLQ su di un server LAMP e che mi ha permesso di risparmiare un bel po' di tempo. Lo script è ampiamente documentato e facilmente personalizzabile e permette, ad esempio tramite una chiamata cron, di effettuare il backup automatico dei database MySQL ospitati su di un server, e di inviare i file di backup ad un server FTP od ad una casella email.

Il backup è effettuato utilizzando mysqldump, i file di dump vengono quindi compressi con gzip e se lo si desidera è possibile inviarli ad uno o più server FTP e ad uno più indirizzi email.

MaxClients, MaxKeepAliveRequests e KeepAliveTimeout: ottimizzazione di Apache HTTP Server

Apache HTTP Server Logo

Oggi sappiamo quanto sia importante la velocità di caricamento della pagina sia in termini di usabilità ed user experience, sia in termini SEO, in quanto i motori di ricerca hanno inserito la velocità di caricamento delle pagine nei loro algoritmi di ranking.

Di recente ho avuto modo di lavorare sull'ottimizzazione di un server web, ed è interessante notare come sia possibile ottenere ottimi risultati intervenendo su tre semplici parametri di configurazione del web server Apache:

  • MaxClients
  • MaxKeepAliveRequests
  • KeepAliveTimeout

parametri la cui importanza è spesso sottovalutata e che non sempre garantiscono le migliori prestazioni alle loro impostazioni di default.