cp

Mattepuffo's logo
Usare le MenuBar in QML

Usare le MenuBar in QML

QML consente di scrivere applicazioni Qt usando un linguaggio simile a Javascript, misto alle classi C++ del framework.

Molto interessante, soprattutto per chi conosce bene Javascript.

Oggi vediamo come usare il componente MenuBar in una applicazione Qt Quick.

Una volta creato un progetto Qt Quick Application con Qt Creator, ci ritroviamo il file main.qml con un oggetto Rectangle.

Per usare le MenuBar dobbiamo però passare a ApplicationWindow, e questo comporta qualche modifica al progetto iniziale.

Mattepuffo's logo
Calcoliamo i consumi energetici con powerstat

Calcoliamo i consumi energetici con powerstat

In genere i produttori dei pc rilasciano i valori dei consumi energetici.

Possiamo comunque scoprirlo in qualsiasi momento con un utile strumento: powerstat.

Questo tool esegue diverse operazioni, calcolando poi la deviazione standard e i valori massimo e minimo dei dati raccolti, quando il nostro laptop / notebook è alimentato a batteria.

Prima di tutto installiamolo:

# aptitude install powerstat (Debian e derivate)
# yaourt -Sy powerstat-git (Archlinux da AUR)

A questo punto facciamo qualche test; sono richiesti privilegi elevati.

Mattepuffo's logo
Identificare le porte aperte in Mac OS X

Identificare le porte aperte in Mac OS X

Vediamo oggi due comandi veloci per scoprire quali porte sono aperte in Mac OS X.

In verità sono due comandi dei quali ho già parlato in altri articoli, ma li vediamo qua specifici per il Mac.

Il primo è netstat:

$ netstat -a -p tcp

Così prendiamo solo il protocollo TCP, che in genere è quello che ci interessa di più.

Mattepuffo's logo
Creare PDF con PHP e TCPDF

Creare PDF con PHP e TCPDF

Oggi vedremo come creare file PDF con PHP.

Useremo una libreria esterna, molto ampia e con moltissimi strumenti: TCPDF.

Qui anche una pagina con le poche istruzioni per l'installazione.

Una volta eseguite le operazioni varie, vediamo come fare; lo scenario è questo: vogliamo trasformare un articolo in PDF in modo che l'utente se lo possa scaricare in locale.

Abbiamo quindi un form con qualcosa del genere dentro:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="frm_download" style="float: right;">
      <a href="javascript:document.frm_download.submit();" alt="Download">Download PDF <img src="css/images/pdf.jpg" alt="Download" width="35"></a>
</form>

A questo punto vediamo il codice che viene richiamato al submit:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    include_once 'lib/conn.php';
    $pdfTitolo = NULL;
    $pdfTesto = NULL;
    $objPdf = Connessione::getInstance();
    foreach ($objPdf->getArticolo($_GET['id']) as $art) {
        $pdfTitolo = $art['art_titolo'];
        $pdfTesto = $art['art_testo'];
    }
    include_once 'create_pdf.php';
}

Eseguo una query su db e poi richiamo il file crea il PDF.

Mattepuffo's logo
CPU-Z adesso anche per Android

CPU-Z adesso anche per Android

Tempo fa avevo parlato di una versione del celebre CPU-Z per Linux: CPU-G.

Oggi invece vi parlo di CPU-Z versione Android!

Ebbene si perchè da qualche tempo, nel Play Store, è comparsa anche questa app.

Questa app permette di avere sotto mano molte caratteristiche hardware del dispositivo su cui gira.

Mattepuffo's logo
Da CURLcode a string in C++

Da CURLcode a string in C++

In questo articolo abbiamo introdotto l'uso di CURL in C++ facendo un esempio di base.

In genere però é più probabile dover trasformare la risposta che ci arriva come oggetto CURLcode, ad esempio in string perchè poi processata.

Ad esempio se ci arriva in JSON (come nel mio caso).

Quindi dobbiamo convertire CURLcode in string.

Per farlo dobbiamo apportare un pò di modifiche; cominciamo dal file .h:

#ifndef READ_H
#define    READ_H

#include <iostream>
#include <curl/curl.h>

using namespace std;

extern "C" int readCurlHelper(char *data, size_t size, size_t nmemb, string *buffer);

class Read {
public:
    Read();
    virtual ~Read();
    void read(string file);
    size_t curlToString(char *data, size_t size, size_t nmemb, string *buffer);
private:
    string response;
    string url;
    CURL *curl;
    CURLcode res;
    struct curl_slist *headers;
};

#endif

Abbiamo aggiunto due funzioni, una interna che si occupa di costruire la stringa, e una esterna che si occupa della conversione.