Una prigione per la tua mente

La dittatura perfetta avrà sembianza di democrazia. Una Prigione senza muri nella quale i prigionieri non sogneranno di fuggire. Un sistema di schiavitù dove, grazie al consumo e al divertimento, gli schiavi ameranno la loro schiavitù.

Aldous Leonard Huxley

Terremoto nel cielo

In un bel giorno sereno,
con la carne nel frigo,
siamo tutti riuniti,
per festeggiare or o mai più,
il ghigno d’uomo sincero,
mai triste e mai serio,
di un compagno, un amico,
nel blu dipinto di blu.

C’è stato un lampo nel cielo
Una scossa lassù
Un terremoto nel cielo
Ed un altro qui giù

E siamo scossi davvero
Adesso è tutto più serio
Con un diamante di meno
A scintillare qui giù

Oh,
Oh
Sai che ridere
Oh,
Che sarà

Oh oh oh,
Sai che favole
Oh, da cuntà

Oh oh oh
Con un terremoto di là
Oh oh oh
Non sta quieto nessuno …
su ogni nuvola!

E pensi un po’
Pensi “mah?”
Se un criterio ci sta
Nun u riesc a truà
Ma mo nun c’aggia pensà

Che un terremoto è nel cielo
ed un altro nel cuore
Un terremoto nel cielo
Ed un altro qui giù

E siamo scossi davvero
Adesso è tutto più serio
Con un diamante di meno
A scintillare di là

Classi php reference, clone, duplicate

 

È molto interessante notare la differenza tra clonazione, duplicazione e referenza ad una classe. In questo piccolo articolo ci chiariremo le idee in tal senso.

Vi invito ad eseguire lo script che segue in un file .php

Il risultato che io ottengo è il seguente:

Come dobbiamo interpretare questo risultato?

La questione è molto semplice come possiamo vedere:

  • $class è la classe sorgente;
  • $a  rappresenta una copia di $class ottenuta per assegnazione (tramite l’operatore di assegnazione ‘=’);
  • $b referenzia $a, significa che è un puntatore alla risorsa, non un suo duplicato;
  • $c è invece un clone della classe.

Quello che vediamo nei 3 var_dump è:

  • che $a e $b si comportano allo stesso modo e dal numero identificativo della risorsa (quello con il cancelletto) capiamo che si tratta della stessa cosa (ovvero di puntatori a $class);
  • $c invece rappresenta una nuova istanza della classe (stdClass) ottenuta per clonazione.

Rock it’s my painkiller

I found a cave in rock music
made of blasting sounds
and stretched vocal cords
that’s my refuge

I know as I knew
how the dust tastes
Conscious as I am
of my strange thoughts
I can’t evade ‘em
and I can’t deal with them

A bullet can low them volume down
but fearful as I am
I found a better way to shut ‘em up

And the way is rock music
rage and anger as sounds
even love isn’t floppy in rock music
what a magic tool to grow dim
that stupid human tendency
that makes you wondering
reasons and whys.

Then I adjust the dial of gain
until my humanity it’s away again
And I shut it up in a jail
for a while along with pain.

Es como tú lo ves

Ultimately spiritual awareness unfolds when you’re flexible, when you’re spontaneous, when you’re detached, when you’re easy on yourself and easy on others.
 
Deepak Chopra
 

Translate a Drupal 7 custom module via l10n_update

It is really a big deal to manage translations of custom module in Drupal 7 expecially if you have a multisite installation.

Problem

We want use a .po file to translate a custom module programmatically, i.e. without forcing a redactor to do dangerous manual operations.

Furthermore we want have our module always accompained by its translations.

Solution

First of all we need to have l10n_update module installed.

Than we can declare the hook “l10n_update_projects_alter” which allow to set a remote path where the .po file is hosted.

Normally the path should be a remote, indipendent one, but in most cases we would like to have the .po file inside the website itself (i.e. not a separeted environment).

Take a look to the code below in which I declare a .po file that is in the module folder, in particular in “translations” subfolder.

As you can see the file name contains the parameter %language. In this case the filename would be ModuleName.LanguageCode.po.

Furthermore with the following snippet, I have manually (i.e. programmatically) forced the module to update its translations.

The .po files have been extracted thanks to Translation Template Extractor.

Drupal 8 views ajax manual refreshing does not work properly

Interviewer: Drupal 8 is amazing … isn’t it? 

Angry me: No, it’s not!

One of the problems we have spent lot’s of energies on is related to Drupal 8 views.
As you probably know the contrib module views has been integrated as a core module in this version 8 of Drupal.

Eventough there’s a nice page with documentation on D8 views, as a Drupal developers we know we can not fully rely on it to get rid of problems.

The problem

When a view is printed into a webpage as block or in a shape different of “page” display type, you can not have ajax features working properly on it, furthermore you are also not able to manually (via javascript) refresh it (triggering “RefreshView”).

If you watch what happen in a standard views with page as display type, and then start to playing “find the difference” with the other display types, you will (soon or later) notice that lot’s Javascript files views-ajax related, are not even included into the DOM!

But, what is happening?

For some reason, after hours, we have understand that even if you flag the checkbox to “use ajax” you are not able to get 

in browser console and neither, of course, the ajax views behavior.

The solution

When you are invoking the view do not forget to invoke “preview” method too, because it is responsible to prepare the view as desired.

We found no documentation on the web, so we assume this article will be useful for some Drupal information thirsty developer.

Thanks to Luca Rossi that achieved the solution.