venerdì 2 maggio 2014

LiberAcus 2.0 - la nuova versione del programma di gestione per sartorie

Ho appena rilasciato la versione 2.0 di LiberAcus, il programma di gestione per sartorie.
Da poco più di un anno porto avanti questo progetto, è un software libero rilasciato con licenza GPL versione 3, l'ho sviluppato in C++ ed utilizza le librerie GTK 3, gira su qualsiasi sistema GNU/Linux.

Le novità introdotte sono molte, tante le novità strutturali interne del programma ed altrettante le nuove funzionalità a disposizione dell'utente finale.


La novità di rilievo riguarda la gestione delle prestazioni nella ricevuta e la stampa delle etichette, ho introdotto il concetto di capo di vestiario sul quale si possono eseguire diverse prestazioni. Come potete vedere nell'esempio qui sotto, sulla gonna verranno effettuate due prestazioni: la sostituzione della chiusura lampo e il restringimento del punto vita. Questa ricevuta genererà la stampa di due etichette, una per la camicia ed una per la gonna. La precedente versione del programma invece avrebbe stampato un'etichetta per ogni prestazione, per un totale di tre etichette da applicare su due soli capi.
la finestra per l'inserimento di una nuova ricevuta
Sotto potete vedere un esempio di anteprima di stampa di un'etichetta che verrà spillata sul capo di vestiario come promemoria.

Un'altra novità visibile dall'utente è il nuovo pannello delle preferenze dal quale è possibile personalizzare vari aspetti del programma.

Il resto delle novità interne riguarda la correzione di bug ed una gestione dati diversa che dovrebbe garantire prestazioni migliori in presenza di grandi quantità di dati.
Per tutti coloro interessati allo sviluppo di questo programma potete contattarmi e raggiungere il sito del progetto.
Se invece siete interessati all'utilizzo di questo programma per la vostra attività, siete liberi di scaricarlo ed utilizzarlo a vostro piacimento.
Potete scaricare direttamente la tarball del programma da questo link:
https://drive.google.com/file/d/0B6BUiE6is8MyQWlLeEZwMmxJLWM/edit?usp=sharing

Una volta scaricato l'archivio, dal Terminale, andate nella posizione in cui si trova il file e decomprimetelo con

unzip liberacus-2.0.tar.gz

Ora entrate nella directory liberacus-2.0 con il comando

cd liberacus-2.0

Quindi potete procedere alla compilazione

./configure

make

sudo make install

Ora potete avviare l'applicazione da Terminale digitando

liberacus

venerdì 7 marzo 2014

Raspberry Pi: come ottenere la risoluzione ottimale per il vostro monitor o televisore

Nella guida precedente (leggi qui) abbiamo visto come risolvere i problemi con il collegamento HDMI al televisore o al monitor del Raspberry Pi, in questo post vediamo invece come ottenere la risoluzione ottimale per il vostro schermo.
Spesso infatti la risoluzione scelta dal Raspberry Pi con i valori di default è la classica VGA 640x480, decisamente bassa!
il file di riferimento è sempre config.txt che troviamo in /boot, ci sono due opzioni che regolano la modalità video e la risoluzione, sono hdmi_group e hdmi_mode.

hdmi_group definisce il tipo di HDMI del display collegato, i valori possibili sono:
0 = valore di default
1 = CEA
2 = DMT

Il valore di default sceglierà il tipo in base alle informazioni ottenute dall'EDID (Extended Display Identification Data), che è una struttura di dati forniti dal display, in pratica sono le informazioni che utilizzano i computer per conoscere che tipo di monitor è collegato e quali risoluzioni sono supportate.

hdmi_mode imposta la modalità video e la risoluzione, c'è una lunga lista di valori possibili che evito di riportare qui, ma che potete vedere su questo sito.

Ora che conosciamo un minimo di teoria, passiamo alla pratica: come faccio a sapere quale sia la risoluzione ottimale del mio monitor o televisore?

Aprite il file di configurazione per modificarlo da terminale con

sudo nano /boot/config.txt

Prima cosa da fare è abilitare le due opzioni hdmi_group e hdmi_mode cancellando il carattere '#' all'inizio delle righe ed impostiamo entrambi i valori a 1, così da ottenere una risoluzione standard VGA (640x480).

Salvate le modifiche premendo i tasti Ctrl + o, premete il tasto Invio per confermare il nome del file, quindi uscite dall'editor con Ctrl + x.

Ora riavviate il Raspberry Pi con

sudo reboot

Dopo il login digitate questo comando per ottenere le informazioni dal vostro monitor/TV

/opt/vc/bin/tvservice -d edid.dat

Avete così ottenuto l'EDID, ora andiamo a leggere le informazioni contenute con il seguente comando

/opt/vc/bin/edidparser edid.dat

Verranno visualizzate sul terminale molte informazioni, dal costruttore del display alla lista di tutte le risoluzioni supportate. Sarà qualcosa di simile a quello che ho ottenuto io:


Enabling fuzzy format match...
Parsing edid.dat...
HDMI:EDID version 1.3, 1 extensions, screen size 16x9 cm
HDMI:EDID features - videodef 0x80 !standby !suspend !active off; colour encoding:RGB444|YCbCr422; sRGB is not default colourspace; preferred format is native; does not support GTF
HDMI:EDID found monitor range descriptor tag 0xfd
HDMI:EDID monitor range offsets: V min=0, V max=0, H min=0, H max=0
HDMI:EDID monitor range: vertical is 49-61 Hz, horizontal is 15-46 kHz, max pixel clock is 80 MHz
HDMI:EDID monitor range does not support GTF
HDMI:EDID found monitor name descriptor tag 0xfc
HDMI:EDID monitor name is SAMSUNG
HDMI:EDID found preferred CEA detail timing format: 1280x720p @ 60 Hz (4)
HDMI:EDID found CEA detail timing format: 1280x720p @ 50 Hz (19)
HDMI:EDID established timing I/II bytes are 20 00 00
HDMI:EDID found DMT format: code 4, 640x480p @ 60 Hz in established timing I/II
HDMI:EDID standard timings block x 8: 0x0101 0101 0101 0101 0101 0101 0101 0101
HDMI:EDID parsing v3 CEA extension 0
HDMI:EDID monitor support - underscan IT formats:no, basic audio:yes, yuv444:yes, yuv422:yes, #native DTD:1
HDMI:EDID found CEA detail timing format: 1920x1080i @ 60 Hz (5)
HDMI:EDID found CEA detail timing format: 1920x1080i @ 50 Hz (20)
HDMI:EDID found CEA detail timing format: 720x480p @ 60 Hz (2)
HDMI:EDID found CEA detail timing format: 720x576p @ 50 Hz (17)
HDMI:EDID found CEA format: code 4, 1280x720p @ 60Hz (native)
HDMI:EDID found CEA format: code 19, 1280x720p @ 50Hz
HDMI:EDID found CEA format: code 5, 1920x1080i @ 60Hz
HDMI:EDID found CEA format: code 20, 1920x1080i @ 50Hz
HDMI:EDID found CEA format: code 3, 720x480p @ 60Hz
HDMI:EDID found CEA format: code 18, 720x576p @ 50Hz
HDMI:EDID found audio format 2 channels PCM, sample rate: 32|44|48 kHz, sample size: 16|20|24 bits
HDMI:EDID found HDMI VSDB length 6
HDMI:EDID HDMI VSDB has physical address 1.0.0.0
HDMI:EDID HDMI VSDB supports AI:yes, dual link DVI:no
HDMI:EDID HDMI VSDB deep colour support - 48-bit:no 36-bit:no 30-bit:no DC_yuv444:no
HDMI:EDID HDMI VSDB has no latency information
HDMI:EDID adding mandatory support for CEA (1) 640x480p @ 60Hz
HDMI:EDID filtering formats with pixel clock > 162 MHz or h. blanking > 1023
HDMI:EDID best score mode initialised to CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 0)
HDMI:EDID best score mode is now CEA (1) 640x480p @ 60 Hz with pixel clock 25 MHz (score 61864)
HDMI:EDID best score mode is now CEA (2) 720x480p @ 60 Hz with pixel clock 27 MHz (score 3066472)
HDMI:EDID CEA mode (3) 720x480p @ 60 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID best score mode is now CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz (score 5190888)
HDMI:EDID DMT mode (4) 640x480p @ 60 Hz with pixel clock 25 MHz has a score of 18432
HDMI:EDID CEA mode (5) 1920x1080i @ 60 Hz with pixel clock 74 MHz has a score of 4273832
HDMI:EDID CEA mode (17) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 2566472
HDMI:EDID CEA mode (18) 720x576p @ 50 Hz with pixel clock 27 MHz has a score of 66472
HDMI:EDID CEA mode (19) 1280x720p @ 50 Hz with pixel clock 74 MHz has a score of 4617160
HDMI:EDID CEA mode (20) 1920x1080i @ 50 Hz with pixel clock 74 MHz has a score of 3732360
HDMI:EDID preferred mode remained as CEA (4) 1280x720p @ 60 Hz with pixel clock 74 MHz
HDMI:EDID has HDMI support and audio support
edid_parser exited with code 0


Ho evidenziato in grassetto e sottolineato due righe in particolare, perché sono quelle che ci dicono qual'è la modalità video preferita.
Nel mio caso, come potete vedere dall'ultima riga evidenziata qui sopra, la risoluzione preferita è CEA (4), corrispondente a 1280x720p @ 60 Hz.

CEA è il tipo di HDMI, quindi imposterò hdmi_group=1, il numero tra parentesi corrisponde invece al valore da inserire per impostare la modalità video, quindi nel mio caso hdmi_mode=4.

Una volta a conoscenza dei valori ottimali per il vostro monitor/TV, andate a modificare di nuovo il file di configurazione con

sudo nano /boot/config.txt

sostituite i valori di hdmi_group e hdmi_mode con quelli ottimali e ricordatevi di verificare che l'opzione hdmi_safe sia disabilitata, altrimenti la risoluzione sarà bloccata su VGA (640x480).
Vi ricordo che un opzione, per essere disabilitata, deve avere il carattere '#' all'inizio della riga.
Ora salvate con la solita combinazione Ctrl + o, Invio, Ctrl + x e riavviate con

sudo reboot

Ora il vostro Raspberry Pi utilizza la risoluzione ottimale del vostro monitor/TV.