Piero V.

Cosa sono gli hook

Spesso quando parlo dello sviluppo dei plugin di Flatoress o in generale dello sviluppo di un sito web dico sempre qualcosa riguardante gli hook, che però non sono un concetto noto a tutti, perciò ho deciso di fare questo post di spiegazione.

Innanzitutto un programma o uno script possono essere divisi in blocchi (più o meno grandi), come inizializzazione, preparazione del contenuto, output del contenuto, chiusura delle risorse utilizzate (connessioni al database etc…).

Lo scopo degli hook è di poter inserire dinamicamente una porzione di codice (per esempio una funzione) in questi blocchi, infatti hook in italiano vuol dire gancio. Talvolta gli hook possono anche sostituire i comportamenti di default di un programma.

Gli hook sono praticamente ciò che rende un programma estendibile.

Per esempio grazie agli hook si può commutare da un sistema di indirizzi che si basa su variabili GET ad un sistema di indirizzi basato sul mod_rewrite più SEO-compatibile: si inserisce una funzione che all’inizializzazione dei parametri “raccoglie” gli URL riscritti e poi si usa un altro hook per creare i link.

Usano gli hook anche grandi progetti come Wordpress o Dokuwiki.

Le caratteristiche pratiche dal punto di vista della programmazione degli hook sono:

  • presenza di funzioni che permettono di aggiungerli, modificarli, rimuoverli o eseguirli
  • un sistema di priorità per eseguire delle porzioni di codice prima o dopo di altre
  • la possibilità di essere chiamati molte volte
  • la possibilità di poterne creare di nuovi dinamicamente

Un primordiale sistema di hook è abbastanza semplice da implementare: è una lista di callback da eseguire. Perciò, per esempio, basta creare un array multidimensionale: nel primo array si inserisce la priorità per chiave e il valore un array con il nome delle funzioni da chiamare (per esempio, in PHP tramite call_user_func).

Spero di essere stato il più chiaro possibile, altrimenti fatemelo sapere via commento.

Easyduino e altre idee

È da un po’ che mi frulla per la testa l’idea di sperimentare con Arduino.

Arduino è una scheda programmabile (basata sui chip della famiglia Atmega) utile per creare diversi progetti.

Partono dai giochini con i led alla gestione degli accessi basata su RFID o sulla rete.

E allora cos’è l’Easyduino di cui ho parlato nel titolo? È un clone di Arduino.

Poiché Arduino è rilasciato sotto licenza Creative Commons 3.0 BY SA e i suoi schemi sono liberi, è possibile farne dei cloni purché rispettino la licenza.

Allora io ho deciso di crearmi questo clone perché mi diverto di più e mi costa penso la metà: 22€ (IVA Esclusa) non sono tantissimi poi so crearmi le PCB (circuiti stampati) e i componenti del clone non penso costino più di 10€.

L’unica cosa è che Easyduino non prevede l’USB bensì la seriale, però non cambia molto, considerato che nel mio computer ce l’ho ancora e il supporto USB era una simulazione della seriale.

Ad essere sinceri solo nell’ultima versione (Arduino UNO) l’USB può svolgere anche altri compiti dato che il chip che la gestisce è stato cambiato ma occorre riprogrammarlo e non penso che a me servirà tale funzione, soprattutto all’inizio.

Progetti in testa ne ho molti: come sperimentazione iniziale anche la ricezione degli IR da parte dei telecomandi, tanto per.

Però sto seriamente pensando di costruirmi un rack per i miei effetti che possa anche gestire dei preset, magari addirittura il footswitch dell’amplificatore.

Comunque se farò qualcosa ne parlerò più avanti, per il momento sono impegnato con il mio mini mixer che non ho più finito (in realtà non l’ho neanche cominciato 😁 ).

Domani penso inciderò un po’ di PCB: preamplificatori per i microfoni, l’EQ, il mixer in sé e per sé e anche il Ruby/Noisy Cricket.

Plugin Tag (v2.2) [Flatpress]

Italiano

Mi è stato segnalato da Hubert un bug nella versione 2.1 del plugin Tag.

L’ho risolto e ho riaggiunto la funzione di fare la lista automatica alla fine di ogni post.

Questa funzionalità può essere disabilitata in fp-plugins/tag/plugin.tag.php alla linea 12.

Lingue: en-us, it-it, de-de.

Licenza: GNU GPLv2

Download: Plugin Tag v2.2.

English

Hubert reported me a bug in Tag Plugin V2.1.

Now I’ve fixed it and I’ve added the automatic list of tags as V1.0 did.

This feature can be disabled in fp-plugins/tag/plugin.tag.php at line 12.

Languages: en-us, it-it, de-de.

License: GNU GPL v2.

Download: Plugin Tag v2.2.

Computer o giocattoli?

Leggendo un po’ così per il web ho sentito di un video di Windows 8. All’inizio non ero interessato, ma il tanto parlare di una rivoluzione mi ha incuriosito.

Ecco il video: (Microsoft che usa servizi della concorrenza 😁 )

Vedendolo mi sono detto: ma vogliamo computer o giocattoli?

In pratica la “rivoluzione” di cui tutti parlano è far diventare il computer più ispirato agli smartphone…

Un momento, un momento! Come?

Il tradizionale sistema di un computer funziona già molto bene, infatti tastiera e mouse sono molto comodi, soprattutto se si devono passare ore a scrivere al computer.

Non penso che uno schermo touch screen, almeno ai livelli di oggi, possa essere altrettanto comodo per trascorrere molto tempo al computer, sia in ambito lavorativo che in ambito domestico.

Inoltre il pulsante start o il pannello superiore di Mac o le mille combinazioni di pannelli degli ambienti grafici di GNU Linux sono già molto comodi.

Purtroppo sembra che questa sia la strada per l’evoluzione delle interfacce grafiche.

Mi chiedo che influssì avrà sul software libero.

Se già GNOME Shell era molto criticato per la sua radicalità mi chiedo come diventerà dopo questi video.

Comunque Windows 8 (questo è l’attuale nome che ha) se continuerà ad avere questo tipo di cambiamenti dovrà essere introdotto per bene, altrimenti la microsoft potrebbe essere come windows vista.

Plugin Mobile (v1.0) [Flatpress]

Italiano

Ho scritto questo plugin che permette di scegliere un tema specifico per i dispositivi mobili, riconosciuti con lo user agent (grazie a Detectmobilebrowser.com).

In più, di default, rimuove i javascript dei plugin JS Utils, jQuery, Lighbox e Lighbox 2 (risparmiando molti KB).

Il tema mobile non deve avere stili e le cartelle res e imgs devono essere dentro alla cartella principale del tema.

Attenzione: certi plugin che hanno un pannello di amministrazione o lo stesso pannello di configurazione se usati con un dispositivo mobile potrebbero impostarlo come tema di default!

Però potete abilitare un’opzione per cui nel pannello di amministrazione non si usi il tema mobile.

Per configurare il plugin andate nel Pannello di Amministrazione, selezionate Plugin e quindi cliccate su Mobile.

Si possono anche aggiungere i link per visualizzare la pagina nella versione normale o disabilitare il plugin per la sessione: i link sono rispettivamente {$plmobilen} e {$plmobiles} ({$plmobiley} per riabilitare la versine mobile). … [Leggi il resto]