has

Mattepuffo's logo
Aggiungere iscritti a MailChimp con PHP

Aggiungere iscritti a MailChimp con PHP

In questo articolo avevamo visto come reperire gli iscritti di una lista in MailChimp con PHP.

Oggi vediamo come aggiungerli; vedremo due esempi:

  • nel primo verrò creato l'utente solo se la email non esiste, e in caso contrario verrà restituito un errore
  • nel secondo, nel caso di email già esistente, verranno aggiornati i dati di quell'utente

A livello di codice, le modifiche sono molto poche.

Mattepuffo's logo
Connessione a MySQL con Ruby

Connessione a MySQL con Ruby

E' da tempo che voglio imparare un pò il linguaggio Ruby.

Oggi, dopo aver studiato un pò, ho deciso di aprire una nuova categoria dedicata al linguaggio.

Come primo argomento vederemo connetterci a un db MySQL, usando la libreria dedicata a questo db.

Volendo è disponibile anche DBI, che è più db-indipendent; ma non lo ho ancora usato.

Mattepuffo's logo
Javascript no back history

Javascript no back history

Quello che andremo a vedere oggi è un semplice script in Javascript che non permette al browser di tornare indietro nella propria cronologia.

In generale, quindi, andrebbe messo solo nelle pagine che richiedono questa specifica cosa.

Mattepuffo's logo
Iterare una HashMap in Java

Iterare una HashMap in Java

In Java iterare su una HashMap è uun pò diverso che iterare su una semplice lista.

Ci sono diversi modi per farlo, ma io vi posto direttamente quello che uso che mi piace di più!

Mattepuffo's logo
Ordinare una ListView in Android

Ordinare una ListView in Android

Abbiamo visto come riempire una ListView in Android usando dati in formato JSON.

Solo che la lista risulta "statica" nel senso che come ci arriva la leggiamo, e non possiamo ordinarla.

Qui vediamo proprio questo: come ordinare una ListView simulando una tabella con righe e colonne.

Partiamo dalla Activity principale:

public class MainActivity extends Activity {
    
    private TextView txtTitolo = null;
    private TextView txtCreazione = null;
    private ListView listView = null;
    private SimpleAdapter adapter = null;
    private ArrayList> list = new ArrayList>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setLista();
        txtTitolo = (TextView) findViewById(R.id.h_titolo);
        txtCreazione = (TextView) findViewById(R.id.h_creazione);
        txtTitolo.setOnClickListener(new ListSort(list, "titolo", adapter));
        txtCreazione.setOnClickListener(new ListSort(list, "creazione", adapter));
    }
    
    private void setLista() {
        try {
            listView = (ListView) findViewById(R.id.lista_articoli);
            JSONArray jsonArray = new JSONArray(JsonFile.read(path + "blog_articoli.json"));
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jo = jsonArray.getJSONObject(i);
                HashMap map = new HashMap();
                map.put("id", jo.getString("id"));
                map.put("titolo", jo.getString("titolo"));
                map.put("creazione", jo.getString("creazione"));
                map.put("modifica", jo.getString("modifica"));
                map.put("count", jo.getString("count"));
                list.add(map);
            }
            adapter = new SimpleAdapter(this, list, R.layout.rows,
                    new String[] { "titolo", "creazione", "modifica", "count" },
                    new int[] { R.id.titolo, R.id.creazione, R.id.modifica, R.id.count });
            listView.setAdapter(adapter);
        } catch (JSONException e) {
        } catch (Exception e) {
        }
    }

}

Tralascio tutta la parte del recupero dati, partendo che l'abbiate già messa a punto (quella parte non cambia).

Mattepuffo's logo
Ridefinire i metodi equals e hashCode in Java

Ridefinire i metodi equals e hashCode in Java

Per il progetto della libreria scritto in Java, mi è capitato di dover ridefinire i metodi equals e hashCode.

Il primo, come si può capire dal nome stesso, serve per controllare l'uguaglianza tra due oggetti.

Questo metodo è legato all'altro, così che se viene ridefinito uno deve essere ridefinito anche l'altro.

Questo perchè l'uguaglianza si basa appunto su un codice hash, che viene trovato dal metodo hashCode.