jQuery plugin: Popup Checkbox List

Vi è mai capitato di avere, all’interno di un form, una lista interminabile di checkbox per la stessa scelta?
Graficamente l’aspetto della pagina ne risente notevolmente e anche l’utente finale può sentirsi scoraggiato dal compilare un modulo apparentemente molto lungo.
Per risolvere questo problema ho creato un plugin per jQuery che rende possibile mostrare in una finestra modale l’elenco di checkbox interessato, in maniera da compattare la lunghezza del form, nel quale vengono mostrare solo le scelte effettuate.
Approfondisci

Form Builder: rilasciata la versione 1.4

Continua lo sviluppo di questa libreria, di cui ho fatto il mio cavallo di battaglia!
Per chi non l’ha mai vista in azione ecco qui il link alla guida iniziale della prima versione: Form Builder v1.0

Nuove funzionalità

Con il susseguirsi delle versioni sono state introdotti diversi miglioramenti tra cui:

  • plugin TinyMCE
  • prevenzione degli attacchi di tipo CSRF (Cross-site request forgery)
  • campo composto da un elenco di checkbox (con popolamento valori da DB e PHP)
  • possibilità di raggruppare le voci all’interno dei select box (tag <optgroup>)
  • formattazione automatica dei numeri decimali
  • possibilità di avere dei campi con una maschera di inserimento (ad es. date, orari)
  • il codice HTML generato è più facile da utilizzare con gli stili CSS

Approfondisci

Processing.js: creare una piantina per la prenotazione di posti in HTML5

Una delle potenzialità più interessanti di HTML5 è l’introduzione dell’elemento Canvas, il quale permette di effettuare un rendering dinamico di immagini tramite un linguaggio di scripting.
Per sfruttarlo al massimo, sono nate numerose librerie Javascript che ne semplificano l’utilizzo, tra cui Processing.js

Processing.js è un progetto imparentato con il più popolare linguaggio di programmazione visuale Processing.
Questa libreria permette di scrivere codice in linguaggio Processing e visualizzare il risultato su una pagina web: la magia avviene trasformando il sorgente in codice Javascript.

In seguito ad un progetto su cui ho lavorato recentemente, ho pensato di sviluppare una demo più vicina alla realtà rispetto agli esempi che si possono trovare sul sito ufficiale.

Utilizzando questa tecnologia, ho creato la piantina di un teatro, sulla quale è possibile selezionare i posti per effettuare la prenotazione di uno spettacolo.
Approfondisci

Inserire codice Javascript in un file Pdf utilizzando Zend_Pdf

Tra le numerose librerie dello Zend Framework, è presente una molto interessante che permette di creare e manipolare file in formato PDF, chiamata Zend_Pdf.
Navigando tra la documentazione si possono trovare i metodi setJavascript e getJavascript, che in linea teoria permetterebbero di inserire codice Javascript all’interno del documento PDF.
Forse non tutti sanno che Adobe Acrobat a partire dalla versione 7, consente l’utilizzo di questo linguaggio di scripting per rendere dinamici e personalizzare i file PDF.
Approfondisci

JQuery Validation per Array di elementi Input

Utilizzo da anni il plugin Validation di JQuery e lo reputo molto funzionale; recentemente mi è capitato di dover validare un array di elementi input e ho scoperto che in questa situazione presenta dei limiti, nel senso che non è in grado di validare tutti gli elementi dell’array, ma solo il primo.
Per questo motivo ho fatto una ricerca in rete ed ho trovato una soluzione (non ufficiale) che risolve il problema senza intaccare il funzionamento generale. Per rendere ancora più semplice l’utilizzo ho scritto una estensione, in maniera da non dover modificare direttamente i file sorgenti del plugin.
I miei test sono stati utilizzando la versione 1.5.2 di jQuery Validation.
Approfondisci

Facebook Hacker Cup – Double Squares – Solution

Double Squares
A double-square number is an integer X which can be expressed as the sum of two perfect squares. For example, 10 is a double-square because 10 = 32+ 12. Your task in this problem is, given X, determine the number of ways in which it can be written as the sum of two squares. For example, 10 can only be written as 32 + 12 (we don’t count 12 + 32 as being different). On the other hand, 25 can be written as 52 + 02 or as 42 + 32.

Input
You should first read an integer N, the number of test cases. The next N lines will contain N values of X.

Output
For each value of X, you should output the number of ways to write X as the sum of two squares.
Approfondisci

Facebook Hacker Cup – Studious Student – Solution

Studious Student
You’ve been given a list of words to study and memorize. Being a diligent student of language and the arts, you’ve decided to not study them at all and instead make up pointless games based on them. One game you’ve come up with is to see how you can concatenate the words to generate the lexicographically lowest possible string.

Input
As input for playing this game you will receive a text file containing an integer N, the number of word sets you need to play your game against. This will be followed by N word sets, each starting with an integer M, the number of words in the set, followed by M words. All tokens in the input will be separated by some whitespace and, aside from N and M, will consist entirely of lowercase letters.

Output
Your submission should contain the lexicographically shortest strings for each corresponding word set, one per line and in order.
Approfondisci

Face detection per tutti i gusti

Come si può intuire dal nome stesso, la Face detection è una tecnologia utilizzata per riconoscere, o meglio, determinare la posizione e dimensione di volti umani all’interno delle immagini digitali.

Questa tecnologia, ormai onnipresente sui principali social network, ha raggiunto la maturità ed è dimostrato dal fatto che sono proliferate implentazioni in tutte le forme e linguaggi di programmazione.

Di seguito, propongo alcuni progetti che hanno attirato la mia attenzione.
Approfondisci

Creare grafici con PHP

I grafici, attraverso l’uso di forme e colori, sono un utile strumento per mostrare in maniera riassuntiva i dati.
In PHP esistono diverse librerie che permettono di creare grafici in maniera veloce, senza dover scontrarsi con le difficoltà della manipolazione delle immagini.
Tra le varie alternative che ho analizzato, in questo articolo voglio recensirne due in particolare, la prima, pChart è realizzata in PHP ed è un insieme di librerie stand-alone, cioè possono essere scaricate ed utilizzate direttamente; la seconda, Google Chart Tools, sono un insieme di API utilizzabili con Javascript.
Approfondisci