Category Archives: Programmazione

La strada verso l’IDE perfetto: Vim! Lezione 1: Gli inizi

Ispirandomi alla serie di articoli che avevo fatto in passato su vim (Mastering Vim) , ho deciso di crea una nuova serie di post a puntate,  sull’utilizzo di Vim come IDE.

Negli ultimi anni a  lavoro mi sono trovato a suare vim sempre piu, e alla fine me ne sono cosi abituato che cerco di usarlo per ogni progetto, quando possibile, quindi ho iniziato un percorso di ricerca di plugin, temi, addon per cercare di riuscire ad effettuare tutte quelel attivitá che un normale IDE offre (per esempio: integrazione con git, syntax highlighting, error check, autocompletamento, ricerca all’interno dei files del progetto, etc).

Con questi tutorial cercheró di spiegare passo passo comme raggiungere questo obiettivo.

Il prerequisito per seguire queste lezioni é una conoscenza almeno base dell’editor. Se non sapete come uscire da vim, eseguite vimtutor prima!

In questa prima lezione si partitá da concetti semplici, dal file .vimrc e alcuni settaggi basilari, necessari per chi vuole svilupparci.

Continue reading La strada verso l’IDE perfetto: Vim! Lezione 1: Gli inizi

TRAVIS CI: Validare un xml

Dopo quasi due anni di silenzio, finalmente ho trovato il tempo per un nuovo articolo.

Immaginate di aver pubblicato un vostro file xml (o piu di uno) contenente delle informazioni che volete rendere accessibili via internet, chiaramente uno dei requisiti sará che ogni volta che si aggiorna il file xml (sia automaticamente, che manualmente), questo  sia ancora in un formato valido (ovvero il file non contiene errori).

Inoltre immaginiamo che il file xml é stato generato con formato personalizzato, quindi non esiste alcuno schema DTD.

In questa guida vi spiegheró come mettere sotto CI questo file (questo approccio é applciabile anche ad altri formati quali json, etc, con i dovuti accorgimenti).

Questa guida assume che si voglia validare il file xml in un progetto hostato su github, e che l’utente sappia almeno abilitare un progetto in travis-ci.

Prima di tutto occorre sapere come validare un file xml. In questo caso dobbiamo usare il programma xmllint, disponibile nel pacchetto libxml2-utils.

La sintassi del comando per validare un file xml:

xmllint --noout your_test_file.xml

Continue reading TRAVIS CI: Validare un xml

Android Lezione 18 – Ricevere le coordinate GPS

Dopo aver visto come mostrare una mappa android, ora il prossimo passo è posizionarci con la mappa sulle coordinate gps ricevute dall’app.

In questa lezione vedremo come rilevare la posizione geografica del telefonino, sfruttando il sensore gps. Per fare ciò occorrerá:

  • Aggiornare il file manifest con i permessi per acceere ai sensori di posizione
  • Abilitare e gestire l’evento di ricezione delle coordinate gps.

Inoltre vedremo come inviare coordinate gps all’emultore, per simulane un cambiamento di posizione.

Le classi necessarie per l’utilizzo degli strumenti GPS sono principalmente due:

  • LocationManager
  • LocationProvider

Come per tutti i sensori e altri servizi di android, per accedere al sensore gps, dobbiamo dichiarare una serie di permessi nel manifest:

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Continue reading Android Lezione 18 – Ricevere le coordinate GPS

Android Lezione 17 – Aggiungiamo le mappe alla nostra app Parte 2

Eccoci finalmente alla seconda parte dell’introduzione alle mappe android, la lezione precedente era principalmente incentrata sul far andare google maps sull’emulatore e su come configurare la nostra app per poter visualizzare le mappe,

In questa seconda parte spiegheremo nel dettaglio il codice di esempio di google utilizzato nella lezione, spiegando metodo per metodo cosa viene fatto

Quindi ora riprendiamo il codice della parte uno e spieghiamolo nel dettaglio:

 

import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import android.app.Activity;
import android.os.Bundle;
 
public class MapPane extends Activity implements OnMapReadyCallback {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_activity);
 
        MapFragment mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }
 
    @Override
    public void onMapReady(GoogleMap map) {
        LatLng sydney = new LatLng(-33.867, 151.206);
 
        map.setMyLocationEnabled(true);
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 13));
 
        map.addMarker(new MarkerOptions()
                .title("Sydney")
                .snippet("The most populous city in Australia.")
                .position(sydney));
    }
}

Continue reading Android Lezione 17 – Aggiungiamo le mappe alla nostra app Parte 2

EDNPN Lezione 1 – Arduino, l’ide blink di un led e altri strumenti utili

Iniziamo questa nuova serie di articoli partendo dalle basi. In questa lezione installeremo l’ambiente di sviluppo di arduino e scriveremo alcuni sketch per far blinkare un led, introducendo così il linguaggio di programmazione utilizzato da arduino, e illustreremo alcuni strumenti utili.

Cosa ci serve per questa lezione:

  • Una board arduino UNO (o compatibile)
  • Un Led
  • Una resistenza da 220 ohm (o un valore vicino).
  • Arduino Ide
  • Una BreadBoard (se non volete intrecciare resistenza e led! 🙂 )

Per l’installazione dell’ide (se gia non lo avete installato) vi suggerisco di scaricare quello disponibile direttamenet dal sito, invece di usare quello disponibile per la vostra distribuzione, questo perchè in più di un occasione mi sono trovato con versioni non aggiornate che avevano dei problemi a far funzionare alcuni tipi di skteches. La versione sul sito non ha bisogno di alcuna dipendenza, in quanto sono tutte contenute all’interno del pacchetto.

Quindi andate su http://arduino.cc/en/Main/Software#toc2 e scaricate la versione specifica per il vostro OS.

Se avete scelto la versione linux, il file scaricato avrà un estenesione .tgz, aprite una finestra del terminale (anche se probabilmente potrete farlo comodamente da gui, vi illustro comunque i comandi per installarlo e lanciarlo da command line), portatevi nella cartella dove avete scaricato l’ide e date il seguente comando:

tar xzf arduino-1.0.6-linux64.tgz -C /destination

Ovviamente sostituite il nome del file tgz con quello che avete scaricato voi. A queto punto se vi portate nella cartella dove lo avete installato, e date:

./arduino

Vi si dovrebbe aprire la finestra dell’ide arduino:

Arduino Ide Continue reading EDNPN Lezione 1 – Arduino, l’ide blink di un led e altri strumenti utili

Elettronica da niubbi per niubbi! – Presentazione

In questi ultimi tempi mi sto appassionando sempre più all’elettronica, e in particolar modo al mondo dei microcontrollori, sono partito come tutti da arduino, ho iniziato a fare esperimenti con accellerometri, motori di hard disk e sensori vari. Poi recentemente mi sono divertito a fare esperimenti programmando direttamente l’atmega invece di passare per l’arduino.

ednpn

Tutto questo partendo da 0, le mie competenze di elettronica erano pressochè nulle, e ora sono ancora basse, ma in queste settimane sto imparando molto, e ho deciso di condividere quello che imparo, quindi nelle prossime settimane inizierò una nuova serie di lezioni legate a questo mondo
Spiegando tutto dal punto di vista di un niubbo (per chi non conoscesse il significato, è l’italianizzazione di newbie, ovvero principiante) cercando di non dare nulla per scontato.

Come al solito le lezioni non avranno una scaletta ben definita, e spesso si tratterá di tutorial su cose che imparo man mano che faccio esperimenti. Gli argomenti trattati principalmente saranno su cose semplici e riguarderanno:

  • Arduino
  • Microcontrollori (Atmega e forse pic)
  • Schede di prototipazione della famiglia Launchpad TI

Ovviamente rimanendo nello spirito di questo sito le istruzioni di compilazione e installazione dei vari tool saranno linux-oriented. Nei prossimi giorni partiremo con la prima lezione che sará una lezione introduttiva su cosa serve per iniziare a sviluppare firmware per microcontrollori atmega (software, controller, etc.)

UPDATE:  Nell’iniziare le lezioni mi sono reso conto che probabilmente è più utile iniziare con qualcosa di più facile, e quindi partirò con una lezione introduttiva su arduino, cosa serve per lo sviluppo e qualche sketch di esempio.

 

 

Android Lezione 16 – Aggiungiamo le mappe alla nostra app Parte I

Iniziamo ora una serie di lezioni (il numero ancora non è definito) relativa ai servizi di google maps.

In questa prima parte vedremo principalmente i passi per configurare e installare i servizi di google maps. Google maps ora è diventato parte dei servizi di Play services.

Quindi prima di tutto occorre se non è stato gia fatto in precedenza installare i Play services. Come per altri componenti, questi si installano mediante l’sdk manager. Li potete trovare nella sezione “Extras”.

Una volta installati, per rendere disponibili questi servizi alla nostra app (e non incorrere in errori di compilazione del nostro progetto) dobbiamo importare il progetto google-play-services_lib dentro eclipse , questo progetto si trova nel seguente path:

~/sdkpath/extras/google/google_play_services/libproject/google-play-services_lib/

Dopo di chè dobbiamo aggiungerlo come libreria al progetto che utilizzerà google maps. Per farlo, aprite le properties del vostro progetto, aprite il tab Android e aggiungete il progetto google-play-services_lib nella sezione library:

Aggiungere play services lib a progetto Continue reading Android Lezione 16 – Aggiungiamo le mappe alla nostra app Parte I

Android lezione 15 – Aggiungiamo un database con SQLite

In questa lezione vedremo come salvare dei dati della nostra applicazione in un database relazionale con SQLite. Per chi non lo sapesse, SQLIte è un database relazionale, che non necessita dell’installazione di nessun server, e tutto avviene all’interno di un file (dove ogni database è contenuto in un file differente).

Ora immaginiamo di voler sviluppare una applicazione che salvi delle note composte da un titolo all’interno di un database, in questa lezione vedremo come svilupparla (mi concentreró sulla parte relativa alla gestione del database, lasciando a voi tutto ciò che riguarda l’interfaccia grafica). Per utilizzare i database avremo bisogno di una classe che estende SQLiteOpenHelper, e faccia l’override dei metodi:

  • onCreate
  • onUpdate

E che abbia un costruttore che mediante super chiami il costruttore della classe padre. Iniziamo con il vedere la struttura base della classe:

public class DatabaseHelper extends SQLiteOpenHelper {
 
	public DatabaseHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}
 
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldversion, int newversion) {
		// TODO Auto-generated method stub
 
	}
}

Continue reading Android lezione 15 – Aggiungiamo un database con SQLite

Android lezione 13 – A fondo nel manifest

Dopo qualche mese di silenzio, riprendiamo finalmente le lezioni android di italialinux. Questa volta non andremo a  vedere altro codice, ma ci concentremo sul file di Manifest, cercando di spiegare  come comprendere e modificarlo a nostro piacimento. Il file AndroidManifest.xml in realtá è una specie di biglietto da visita dell’applicazione (o forse sarebbe meglio da dire il curriculum 🙂 ), dove specifichiamo tutte le informazioni riguardanti la nostra applicazione, quali:

  • Informazioni di presentazione (quali nome package, versione, numero revisione, etc)
  • Requisiti de sistema android  dell’app
  • Informaizoni grafiche: layout, icona.
  • Informazioni permessi, ovvero a quali servizi la nostra applicazione accede
  • Informazioni riguardanti la struttura delle activity e le azioni alle quali devono rispondere.

Android logo

 

Continue reading Android lezione 13 – A fondo nel manifest

Lezioni Android in Real Life – Prima lezione il 07 giugno

Bene dopo ormai ormai due anni di lezioni android sulla rete, ho deciso di sperimentare a farle nella vita reale! E per di più gratis 😀

In collaborazione con il lug di Viterbo (www.tulug.it), vogliamo proporre una serie di lezioni introduttive alla programmazione android, da tenersi il venerdi sera per circa 4 settimane. La prima lezione del corso è programmata per venerdì 07 giugno

Gli argomenti che verranno trattati, saranno più o meno quelli che abbiamo visto nelle lezioni, quindi si partirá dall’hello world, passando per i vari componenti di una app android: il manifest, i layout, i compoennti grafici, activity e listeners.

Maggiori dettagli sul corso si possono trovare a questa pagina: http://www.tulug.it/attivita/corsi/prog-android/  Vi ricordo che se siete interessati è richiesta una pre-registrazione (solo per quantificare gli iscritti).

Si terrá nella sede del Lug di Viterbo in Via della polveriera, 10 a partire dalle 21.30. La data di inizio orientativa dovrebbe essere intorno a venerdi 24 maggio o successivi. Per maggiori informazioni, chiedete nella pagina di facebook di italialinux.