Table accordion, un plugin per Bootstrap

La libreria Bootstrap fornisce una solida base per la creazione dell’interfaccia di siti e applicazioni web.
Tra le varie animazioni disponibili si trova l’effetto accordion, cioè l’apertura e chiusura “a fisarmonica” di più box di contenuto variabile.

Ho pensato di utilizzare lo stesso effetto per visualizzare all’interno di una tabella contenuti informativi aggiuntivi collegati ad una singola riga.
Quando si vuole mantentere leggera una tabella mostrando solo poche colonne, ma allo stesso tempo visualizzare a richiesta più informazioni, è possibile utilizzare il plugin che ho creato appositamente per questo scopo, che consente di caricare quando necessario, tramite AJAX, dati aggiuntivi riguardo una riga, passando come parametro un identificativo per consentire al backend di riconoscere il record.

Ho scritto un plugin compatibile con l’ultima versione di Bootstrap (4.x) e jQuery (dalla 1.10.x) e richiede pochissima configurazione.
Dispone anche di una cache per memorizzare temporaneamente i dati ed evitare più chiamate con gli stessi parametri.
Approfondisci

Creare una piantina per la prenotazione di posti con Javascript e SVG

In seguito al mio precedente articolo di qualche tempo fa su come creare una piantina con la libreria Processing.js ho pensato di aggiornarmi sulle nuove tecnologie disponibili.
La mia attenzione è caduta sull’interazione tra Javascript e le immagini SVG.

Lo standard SVG (Scalable Vector Graphics) è una tecnologia in grado di visualizzare oggetti di grafica vettoriale e, pertanto, di gestire immagini scalabili dimensionalmente. Nello specifico si tratta di un linguaggio derivato dall’XML che si pone l’obiettivo di descrivere figure bidimensionali statiche e animate.

Per la parte Javascript ho scelto la libreria Snap.svg perché è completamente nuova, è stata progettata appositamente per sfruttare le potenzialità dei nuovi browser, inoltre è stata scritta dallo stesso autore della famosa libreria Raphaël.

La caratteristica che rende unica Snap è l’abilità di importare una immagine SVG già esistente, che può essere creata con un software come Illustrator, Inkscape o Sketch e poi animata con Snap. Si possono addirittura caricare via Ajax delle stringhe di SVG e manipolate prima del rendering.
Approfondisci

Creare un termostato con Arduino

Sei davvero soddisfatto del tuo termostato? No? Allora costruiscilo da solo in pochi passi con Arduino!

La domotica è il futuro delle nostre abitazioni e con Arduino è possibilie creare un termostato fai da te che può essere utilizzato sia d’inverno collegandolo alla caldaia che d’estate collegandolo all’impianto di raffeddamento.

In questo articolo andrò a mostrare i principi fondamentali su cui si basa il progetto del termostato con Arduino, confrontando anche due diversi sensori di temperatura: una termoresistenza e un integrato LM35.
Approfondisci

Unire più file PDF con PHP

Recentemente ho avuto la necessità di unire più file PDF usando PHP.
Facendo una ricerca su internet ho trovato la libreria PDFMerger su GitHub che svolge questo compito.
Essa si basa a sua volta sulle librerie TCPDF e TCPDI e supporta l’importazione dei PDF fino alla versione 1.6.

Non c’è nessun particolare vincolo riguardo l’origine dei file PDF quindi, ad esempio potete unire un file caricato dall’utente con uno creato in PHP.

Siccome avevo bisogno di ancora più funzionalità ho pensato di fare un fork del progetto e ho aggiunto le seguenti nuove features:

  • Supporto alle versioni di PHP dalla 5.3 alla 7.2
  • Supporto allo standard PSR-4
  • Supporto dei Namespaces
  • Possibilità di stampare l’header e/o il footer su tutte le pagine del file di output

Approfondisci

Mining di criptovalute sul tuo sito personale

Negli ultimi mesi si sente sempre più parlare di criptovalute e dei possibili alti guadagni che si possono raggiungere. Per entrare in possesso di criptovaluta ci sono due possibili soluzioni: acquistarla pagandola con soldi veri oppure attraverso il mining.

Dal punto di vista tecnico il processo di mining non è altro che un’operazione di hashing inverso: determinare un numero (nonce) tale per cui l’hash SHA-256 di un insieme di dati rappresentante il blocco sia inferiore a una soglia data. Questa soglia, chiamata difficoltà, è ciò che determina la natura concorrenziale del mining di criptovaluta: più potenza di calcolo viene aggiunta alla rete bitcoin e più questo parametro aumenta, aumentando di conseguenza il numero di calcoli mediamente necessari a creare un nuovo blocco e aumentando quindi il costo di creazione dello stesso, spingendo i nodi a migliorare l’efficienza dei loro sistemi di mining per mantenere un bilancio economico positivo. [fonte: Wikipedia]

Per diventare un miner è sufficiente un computer collegato ad internet, tuttavia, affinchè il mining sia efficiente, è praticamente obbligatorio utilizzare hardware dedicato. Questa strada richiede un costo iniziale di qualche migliaio di Euro per acquistare una macchina dedicata e successivamente una spesa continuativa per il consumo di energia elettrica.

Negli ultimi anni l’hashrate è aumentato esponenzialmente cosa che rende sempre piú difficile risolvere i blocchi come persona singola, rendendo così estremamente difficile ricevere il pagamento del premio, per compensare tutte queste difficoltà sono state create le Mining Pool.
Una mining pool è un insieme di persone che minano mettendo assieme le loro forze per aumentare la loro percentuale di hashrate. Così facendo la probabilità di trovare un blocco cresce in positivo a causa dell’alto livello di hashrate usato per processare un blocco piú velocemente.
Approfondisci

Utilizzare l’estensione DOTNET di PHP

Il linguaggio PHP riserva sempre numerose sorprese tra cui estensioni poco note e/o con scarsa documentazione ed esempi. Una di queste si chiama COM and .Net e consente una incredibile interoperabilità ed espansione dei casi d’uso del linguaggio.

Questa estensione consente di utilizzare all’interno di uno script PHP le funzionalità messe a disposizione da un oggetto COM, che può essere una DLL scritta da noi stessi oppure da un’applicazione presente sul server, ad esempio Microsoft Word.
Approfondisci

Arduino, Android e Bluetooth: costruire un’auto telecomandata

Dopo mesi di inattività ho ripreso in mano il mio primo progetto con Arduino e ho deciso di evolverlo in qualcosa di più interattivo, così ho creato un auto telecomanda via Bluetooth da uno smartphone Android.

Questo progetto quindi mi ha richiesto lo studio (in realtà meno approfondito di quando mi aspettassi) della piattaforma mobile di Google.

Per rendere tutto più semplice ho deciso di utilizzare il toolkit Amarino, che permette la comunicazione tra Android e Arduino via Bluetooth, mettendo a disposizione due librerie, una per parte.

L’applicazione Android che funge da telecomando ha due modalità di controllo: tramite pulsanti oppure tramite i sensori di accelerazione dello smartphone (in base all’inclinazione viene inviato un segnale).
Approfondisci

Arduino + Lego = Robot evita ostacoli – Obstacle avoidance robot

Come primo progetto per scoprire la potenza e la semplicità di Arduino ho deciso di costruire un piccolo robot in grado di muoversi ed evitare gli ostacoli in completa autonomia.
Fin dalle scuole superiori sono stato affascinato dal mondo dell’elettronica ed inoltre la mia passione (e anche mestiere) è programmare, sono riuscito a combinare entrambe le cose in questo progetto.
Come prima cosa mi sembra giusto dire che per sviluppare questo robot sono necessari un minimo di conoscenze di elettronica, nonchè un pò di manualità ed ingegno per risolvere i vari problemi che si possano presentare.

Volendo descrivere brevemente il mio progetto sono presenti quattro componenti principali:

  1. Arduino, il cervello del sistema
  2. il motore che fa muovere il robot e il motor driver per controllare il motore (verso e velocità)
  3. lo sterzo e il servo comando per cambiare direzione
  4. sensore di prossimità, per rilevare gli ostacoli

Approfondisci