exec

Mattepuffo's logo
Cambiare USER e GROUP ID a tutti i file in Linux

Cambiare USER e GROUP ID a tutti i file in Linux

Supponiamo di voler cambiare il nostro UID e GID; dobbiamo anche cambiarlo a tutti i nostri file.

E' possibile farlo, e neanche in maniera difficile.

La procedura prevede alcuni step.

Prima di tutto cambiamo lo UID dell'utente:

# usermod -u 2016 UTENTE

Al posto di 2016 metteteci lo UID che volete, stando attenti a non impostarne uno già usato.

Mattepuffo's logo
Usare la clausola IN in una Stored Procedure in MySQL

Usare la clausola IN in una Stored Procedure in MySQL

La clausola IN, in una query con vari filtri, può essere molto comoda.

Ma se la vogliamo usare dentro una Stored Procedure in MySQL, può essere problematico passare i valori da usare nella clausola.

Per farlo siamo costretti a concatenare la query usando CONCAT.

Mattepuffo's logo
Riavviare il Kernel senza riavviare il sistema in Linux

Riavviare il Kernel senza riavviare il sistema in Linux

Ad ogni aggiornamento del Kernel, è richiesto il riavvio del sistema per applicare le patch e usare la nuova versione.

Se stiamo sul pc di casa, nessun problema; ma se siamo su un server di produzione (e non ne abbiamo uno di backup) rischiamo di dare un disservizio.

Però è fondamentale assicurare l'uso dell'ultima versione.

Una soluzione al problema può arrivare da Kexec.

Kexec-Tool è in grado di caricare in memoria l'intero Kernel e avviare il processo di aggiornamento senza riavviare il sistema.

In certi casi, soprattutto in caso di grossi aggiornamenti, è stata rilevata un pò di instabilità; in quela caso non possiamo far altro che riavviare.

Mattepuffo's logo
Usare i ProgressDialog in Android

Usare i ProgressDialog in Android

I ProgressDialog sono molto usati anche in ambito mobile, in quanto consentono di "bloccare" lo schermo avvertendo l'utente quando una determinata operazione finisce.

In generale la sequenza per usare questo oggetto è questa:

ProgressDialog pd = new ProgressDialog(Activity.this);
pd.setMessage("loading...");
pd.show();
// DO STUFF
pd.dismiss();

In sostanza, creiamo il dialog, lo avviamo, eseguiamo le operazioni e lo chiudiamo.

Mattepuffo's logo
Inviare richieste POST in Android

Inviare richieste POST in Android

Lo scenario è questo; per vedere il contenuto è obbligatorio eseguire il login, e le credenziali sono salvate sun un database remoto.

A seconda della risposta del server ci sarà un un messaggio di errore oppure verremo mandati all'activiy principale della app.

Il layout è abbastanza semplice:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <EditText
        android:id="@+id/txt_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:ems="10"
        android:inputType="text"
        android:text="" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/txt_pwd"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txt_user"
        android:layout_below="@+id/txt_user"
        android:layout_marginTop="24dp"
        android:ems="10"
        android:inputType="textPassword"
        android:text="" />

    <Button
        android:id="@+id/btn_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txt_pwd"
        android:layout_below="@+id/txt_pwd"
        android:layout_marginTop="30dp"
        android:text="@string/btn_login" />

</RelativeLayout>

Si compone di un Button e due EditText.