apt

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
Filtrare una ListView in Android

Filtrare una ListView in Android

Oggi vediamo come impostare dei filtri in una ListView in Android.

In sostanza, avendo una ListView caricata (do per scontato che sappiate come caricarla), filtreremo la lista in base a quello che scriviamo in una EditText (una casella di testo).

Partendo dal layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/txt_search"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="@string/cerca"
        android:maxLines="1" />

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

Così facendo abbiamo impostato una EditText a inizio layout, che di default non è selezionata.

Mattepuffo's logo
Avviare una ISO dal boot con Grml Rescueboot

Avviare una ISO dal boot con Grml Rescueboot

Quando vogliamo testare una distro senza installarla, in genere usiamo un live CD / DVD.

In verità abbiamo anche un'altra possibilità: avviare la distro dal boot di GRUB con grml-rescueboot!

Grazie a questo tool possiamo inserire quante ISO vogliamo senza toccare i file di configurazione.

Prima di tutto dobbiamo installarlo:

# aptitude install rgml-rescueboot

Adesso dobbiamo copiare le ISO nella directory /boot/grml.

Mattepuffo's logo
Usare reCAPTCHA con PHP

Usare reCAPTCHA con PHP

Pare che sia sempre più un obbligo proteggere i form che stanno sui siti / blog dagli spammer, soprattutto se per accedere a un form non occorre registrarsi.

Tra i tanti servizi / plugin io ho scelto reCAPTCHA, uno dei servizi più usati e che è "offerto" gratuitamente da Google.

Per usarlo occerre innanzitutto registrarsi; una volta fatto si può andare in questa pagina per aggiungere il proprio sito.

A questo punto siamo pronti per cominciare; qua la pagina di documentazione.

I linguaggi supportati sono diversi (PHP, Java, Python, Javascript, ecc....) e io ho scelto il PHP (qui la doc).

Vediamo il form:

<form id="frm_comm" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
    <label>Nome</label>
    <input type="text" name="nome" value="">
    <label>Email:</label>
    <input type="text" name="email" value="">
    <label>Commento:</label>
    <textarea name="messaggio" rows="10" class="input-xxlarge"></textarea><br>
    <?php
    include_once 'lib/recaptchalib.php';
    $publicKey = '';
    echo recaptcha_get_html($publicKey);
    ?>
    <input type="submit" value="Invia" name="btn_invia" class="btn btn-info">
</form>

Come vedete appena sopra la chiusura del form includo le librerie che ho scaricato da qua.

Mattepuffo's logo
Android Spinner da JSON

Android Spinner da JSON

Oggi vediamo un altro componente importante, lo Spinner, e come riempirlo prendendo i dati dal server in formato JSON.

Lo Spinner è un menu a tendina che ci permette di scegliere tra una serie di valori.

Cominciamo con la richiesta al server per ottenere i dati:

public class Service {

    private final String remote = "http://www.sito.com/service/";
    
    public String getCausali() throws ClientProtocolException, IOException, JSONException {
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(remote + "get_causali.php");
        HttpResponse response = client.execute(post);
        HttpEntity entity = response.getEntity();
        BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line).append("\n");
        }
        reader.close();
        return sb.toString();
    }
    
}

Tramite HttpClient ci connettiamo al server e con HttpPost inviamo una richiesta POST al file specifico (che in questo caso è in PHP).

Il file sul server esegue la query e restituisce i dati in JSON (guardate qua per un esempio).

Prendiamo il contenuto e lo aggiungiamo a un oggetto StringBuffer.

A questo punto creiamo una classe wrapper che rappresenta la nostra tabella sul db; nel mio caso ho solo due campi:

  • id
  • nome

Ecco il mio esempio:

public class Causali {
    
    private int id;
    private String nome;

    public Causali(int id, String nome) {
        this.id = id;
        this.nome = nome;
    }
    
    public int getId() {
        return this.id;
    }
    
    public String getNome() {
        return this.nome;
    }
    
    @Override
    public String toString() {
        return this.nome;
    }
    
}

Questa classe ci servirà come contenitore.

Mattepuffo's logo
Fare pulizia su Debian e derivate

Fare pulizia su Debian e derivate

Un articolo che ho sempre voluto fare ma che non ho mai fatto.

Vi propongo una serie di comandi per fare pulizia completa dei pacchetti e dei files di configurazione inutili in Debiane e derivate (tipo Ubuntu).

Per eseguire tutti i comandi sarà necessario installare alcuni programmi.

Innanzitutto aptitude, gestore di pacchetti alternativo ad apt-get che io uso sempre:

# apt-get install aptitude

Poi installiamo anche deborphan:

# aptitude install deborphan    (o usate apt-get)

Adesso cominciamo:

# aptitude clean

# aptitude autoclean

Questi due comandi ripuliscono la cache.