Twitter
Archivi

Archivio Autore

Utilizzare MySQL in Qt SDK(come compilare la plugin in Windows)

Mi tocca scrivere una guida… più che altro un reminder per me, ogni volta che reinstallo QT perdo tempo per cercare di ricordare come si implementa MySQL dentro QT SDK (o QT Creator o come volete chiamarlo).

PREPARAZIONE SISTEMA

  1. Scaricare i seguenti pacchetti
    • MySQL Community Server (prima opzione mysql-5.6.3-m6-win32.msi)
    • MinGW-Utils-0.3
    • Installate i sorgenti (source) di Update QT SDK ed installate i sorgenti della versione di QT che state utilizzando…
    • Estrarre da MinGW-Utils-0.3.tar.gz tutto il contenuto della cartella bin dentro C:\QtSDK\mingw\bin
  2. Installare MySQL
    • Scegliere la modalità Custom
    • Deselezionare tutto (X rossa)
    • Abilitare l’installazione solo di “Client C API library (shared)
    • Scegliere come path di installazione “C:\MySQL
    • Installare ed al termine scegliere di non aprire il modulo di configurazione…
  3. Configurare le PATH del sistema dal pannello delle proprietà di sistema
    • Usare il comando SYSDM.CPL nel campo di ricerca del menù start di windows
    • Andare su Avanzate>Variabili d’ambiente
    • Nella sezione Variabili di sistema aggiungere (se non esiste già) Var: QTDIR con Valore: C:\QtSDK\Desktop\Qt\4.7.4\mingw
    • Aggiungere anche Var: MINGW con Valore: C:\QtSDK\mingw
    • Selezionare la variabile PATH ed aggiungere alla fine del valore presente la stringa ;%QTDIR%\bin;%MINGW%\bin;
    • Salvare e chiudere il pannello.

COMPILAZIONE

  1. Aprire il prompt dei comandi (digitate cmd nella barra di ricerca del menu start)
  2. Digitare quanto segue
    • cd C:\QtSDK\QtSources\4.7.4\src\plugins\sqldrivers\mysql
    • reimp -d %MYSQL_PATH%\lib\opt\libmysql.lib
    • dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a
    • qmake "INCLUDEPATH+=C:/MySQL/include" "LIBS+=-L. -lmysql" -o Makefile mysql.pro
    • mingw32-make debug
    • mingw32-make release

A questo punto, se tutto è andato per il verso giusto e non ci sono stati problemi/errori, nelle cartelle release e debug dovrebbero esserci le nostre librerie MySQL.
E’ necessario copiare i seguenti file nella cartella C:\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers

  • libqsqlmysqld4.a (debug)
  • qsqlmysqld4.dll (debug)
  • libqsqlmysql4.a (release)
  • qsqlmysql4.dll (release)

Copiare il file C:\MySQL\lib\libmysql.dll in C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin

A questo punto è possibile compilare utilizzando il seguente codice per controllare se tutto funziona.

#include <QApplication>
#include <QtSql>
int main(int argc, char *argv[]) {
  QCoreApplication a(argc, argv);
  qDebug() << QSqlDatabase::drivers();
  return a.exec();
}

E’ abbastanza fondamentale inserire nel file .pro la riga QT += sql … altrimenti non verranno caricati i moduli SQL.

Il risultato nella finestra di debug dovrebbe essere simile a questo:
(“QSQLITE”, “QMYSQL3“, “QMYSQL“)

G.

Contatti

Gianluca Giacalone

E-Mail. gianluca.giacalone [at] gmail.com

Problema pagine bianche in Horde (webmail) su SME Server

E’ da qualche tempo che in ufficio mi hanno segnalato un problema con Horde (webmail) su SME Server.
Purtroppo, un po per il poco tempo ed un po perchè avevo altre priorità, ho sempre rimandato il controllo ed eventuale fix. Oggi ho però fatto qualche prova ed in effetti, quando si aprivano alcune email horde restituiva una pagina bianca.

Era evidentemente un problema del PHP. E’ bastato attivare la visualizzazione degli errori per ottenere una descrizione dell’errore restituito.
L’errore riportava un problema con l’allocazione della memoria simile a questo:

Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 19456 bytes) in  … etc

quindi ho provato ad aumentare il valore di MemoryLimit del php.ini ed il problema si è risolto.

Passaggi da fare per risolvere il problema:

  1. Verificare la configurazione di php:
    config show php
    Il comando restituisce alcuni valori, a noi interessa MemoryLimit.
    Di default è 32 mega e così già dovrebbe funzionare… se così non fosse, aumentando tale valore dovremmo risolvere il problema.
    Se invece non viene restituito nessun valore, faremo direttamente un controllo nel php.ini utilizzando:
     
    • grep memory_limit /etc/php.ini
      Il comando ci restituirà il valore memory_limit…
  2. A questo punto alziamo il valore, i comandi sono:
    config setprop php MemoryLimit 64M

    Il valore può essere anche impostato a 32M … fare alcune prove.
  3. A questo punto doppiamo espandere la configurazione di SME Server per rigenerare il file /etc/php.ini
    expand-template /etc/php.ini
  4. Ora riavviamo il server apache:
    /etc/init.d/httpd-e-smith restart
  5. Verifichiamo che i valori siano effettivamente stati cambiati:
    config show php
  6. Ora verifichiamo che Horde funzioni… e tutto dovrebbe andare.

 

SMS Voice

SMS Voice su Android Market.
https://market.android.com/details?id=com.gianluca.smsVoice


Dona una voce al tuo telefono!

Grazie a “SMS Voice” potrai ascoltare i messaggi in arrivo, le notifiche, il nome della persona che ti sta chiamando e molto altro.

In cosa si differenzia dalle altre applicazioni simili?

La semplicità e l’alta configurabilità del programma.
E’ infatti possibile configurare quasi ogni cosa venga pronunciata e/o fatta dal programma.

Caratteristiche:

  • Possibilità di sentire il nome della persona che sta chiamando. Se il nome non è presente nel telefono, viene pronunciato un testo scelto in precedenza direttamente da te.
  • Possibilità di sentire il nome della persona che ha inviato l’SMS (come per le telefonate, se il numero non è in rubrica, il programma pronuncierà un testo scelto dall’utente).
  • Possibilità di leggere il messaggio arrivato.
  • Possibilità di disattivare ogni modulo, dal controllo delle chiamate al controllo degli SMS arrivati (anche singolarmente mittente e/o messaggio).
  • Gestione sconosciuto per scegliere cosa dire al posto del numero telefonico.
  • Modalità “SMART” per sostituire alcune parole o frasi all’interno dei messaggi o nei contatti che stanno chiamando.
  • Possibilità di scegliere a quali moduli applicare la modalità “SMART”.
  • Servizio completamente funzionante in background.
  • Nei casi in cui arrivino degli SMS durante una telefonata, non verranno letti ma verrà tenuto conto del numeri di sms. Al termine della telefonata il programma vi dirà quanti SMS sono arrivati.
  • La suoneria del telefono viene gradualmente abbassata prima di pronunciare il nome del contatto che vi sta chiamando, dopodichè la suoneria verrà ripristinata al volume originale.

Molte altre features saranno implementate a breve.

Per qualunque richiesta di risoluzione bug o aggiunta nuove features lasciate pure un commento o contattatemi via email.