pos

Mattepuffo's logo
Eseguire l'upgrade di Eclipse

Eseguire l'upgrade di Eclipse

Eclipse, come anche Netbeans e altri software del genere, consente di eseguire l'update della versione e dei plugin attraverso un voce nel menu, ma non consente un upgrade di versione automatico.

Se state su Linux, e avete installato il software tramite repository, non avete problemi.

Se invece state su Mac o Windows, o avete eseguite una installazione manuale, potete seguire questi semplici passi qua sotto (se non volete rifare tutto a mano ovviamente).

Aprite Eclipse e andate in Window -> Prefernces -> Install/Update -> Available Software Sites.

Da qui potete gestire tutti i repo da cui prendere / aggiornare plugin e piattaforma.

Mattepuffo's logo
Twitter Bootstrap Typehead con AJAX

Twitter Bootstrap Typehead con AJAX

In un precedene articolo abbiamo visto come usare la funzione Typehead per attivare l'autocompletamento in Twitter Bootstrap.

Solo che in quell'occasione ogni volta eseguivamo la query nella pagina, costruendo poi la stringa di dati.

In definitiva non usavamo AJAX.

Ed ecco che poi ho capito come fare le cose fatte bene e ve le riporto qua.

Prima di tutto creiamo un file in PHP che esegue la query; è il file che verrà interrogato:

$res = array();
foreach ($objAjax->getArticoli() as $var) {
    $res[] = $var['a_titolo'];
}

echo json_encode($res);

In pratica restituisco i dati in formato JSON.

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.

Mattepuffo's logo
Usare AJAX con jQuery

Usare AJAX con jQuery

Se avete letto questo articolo su AJAX avete visto come sia possibile creare codice cross-borwser e in parte riutilizzabile per effettuare chiamate AJAX attraverso Javascript e PHP.

Se vedete però il codice scritto non è proprio poco per delle semplici chiamate.

Se già utilizzate jQuery per altre cose vale di sicuro la pena usare le funzioni AJAX integrate.

Questo soprattutto perchè possiamo scrivere codice cross-browser con molte meno righe.

E non è poco....

Una descrizione delle API AJAX di jQuery le trovate qua.

Le opzioni più utili e importanti sono:

  • type -> indica il tipo di richiesta (GET o POST)
  • dataType -> il tipo di risposta che ci aspettiamo (HTML, XML, JSON.....)
  • url -> del file lato server da interrogare
  • data -> eventuali valori da passare in querystring
  • success -> cosa fare in caso di richiesta eseguita con successo

Io ho messo su una funzione che poi richiamo tramite link:

<a href="javascript:creaStorico('2012-02-20 14:22:17')">2012-02-20 14:22:17</a>

Richiamo la funzione creaStorico passandogli una data.

Mattepuffo's logo
Aggiungere repository PPA in Debian

Aggiungere repository PPA in Debian

Oggi ho installato BURG su Debian testing; per farlo ho divuto aggiungere un repo PPA.

Solo che il comando:

# add-apt-repository ppa:bean123ch/burg

Traceback (most recent call last):

File "/usr/bin/add-apt-repository", line 65, in <module>

if not sp.add_source_from_line(line):

File "/usr/lib/python2.6/dist-packages/softwareproperties/SoftwareProperties.py", line 630, in add_source_from_line

(deb_line, file) = expand_ppa_line(line.strip(), self.distro.codename)

File "/usr/lib/python2.6/dist-packages/softwareproperties/ppa.py", line 47, in expand_ppa_line

sourceslistd = apt_pkg.Config.find_dir("Dir::Etc::sourceparts") AttributeError: 'module' object has no attribute 'Config'

Vediamo come risolvere il problema.

Prima di tutto facciamo una copia di sicurezza del file in questione:

# mv /usr/bin/add-apt-repository /usr/bin/add-apt-repository-old

Poi seguiamo questa procedura.

Mattepuffo's logo
Mobile redirect con PHP

Mobile redirect con PHP

Aggiunto iPad alla lista.

Ultimamente c'è più la necessità di creare pagine per i dispositivi mobile.

La prima cosa da fare in questi casi è fare il redirect quando il server riconosce uno di questi dispositivi.

Vediamo come eseguire questo redirect usando il PHP.

Per riconoscere i dispositivi che interrogano la pagina possiamo $_SERVER['HTTP_USER_AGENT'].

Così catturiamo lo User-Agent dall'header della richiesta; questo è un tipico esempio: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586).