Dropbox per KDE

Dropbox è un utile servizio di condivisione personale dei file. Niente chiavette USB per portarsi dei file da casa al lavoro, ma semplicemente copiarli in una cartella e poi ritrovarseli dall’altra parte. Il motivo per cui non l’ho mai usato è che non esiste un client ufficiale per KDE, come se esistesse solo Gnome.

La pigrizia non mi ha mai portato a cercare un progetto che effettivamente esiste da tempo: KDropbox alias KFilebox. Compilato, installato. Sembra funzionare benissimo 🙂

Nokia E6

Il Nokia E6-00 è uno smartphone dedicato alla clientela business e, assieme al X7, il primo ad essere dotato di Symbian Anna. È dotato di tastiera QWERTY e uno schermo da 2,5 pollici. È dotato di un’autonomia di 30 giorni in standby.

Read more

Nokia N9

Il Nokia N9 è il primo smartphone di Nokia basato sulla piattaforma MeeGo, nata dalla fusione dei progetti Moblin di Intel e Maemo di Nokia. Sprovvisto di pulsanti frontali e con un display da 4 pollici rappresenta un ottimo prodotto top di Nokia.

Read more

Funzione per la codifica dei dati da inviare via HTTP POST

Per gestire le comunicazioni web della propria applicazione viene usata la classe QNetworkAccessManager.

Questa classe possiede ovviamente i metodi necessari per effettuare richieste di tipo GET, POST, PUT e HEAD, ovvero tutto il necessario per gestire con comodità la maggior parte delle comunicazioni via HTTP.

In particolare il metodo post è così definito:

QNetworkReply *	post ( const QNetworkRequest & request, const QByteArray & data )

Curiosamente però, volendolo usare è necessario comporre manualmente il parametro data che, come sappiamo, risulta essere una lista di coppie chiave=valore separate dalla e commerciale &.

Può quindi risultare utile una funzione come questa:

QByteArray NetworkAccessManager::postDataEncoding(ParamHash hash)
{
  QStringList list;
  QHashIterator i(hash);
  while (i.hasNext()) {
    i.next();
    list << i.key()+"="+QUrl::toPercentEncoding(i.value());
  }
  
  return list.join("&").toUtf8();
}

dove ParamHash è semplicemente un hash di stringhe definito in questa maniera:

typedef QHash<QString, QString> ParamHash;