Page 1
copertina
Standard

GDG DevFest Campania 2014

Il 22 Ottobre si svolgerà, presso lo spazio di Coworking “re.work” sito al Centro Direzionale di Napoli isola E2 a partire dalle ore 9.30, il DevFest Campania 2014: evento annuale, organizzato dal Google Developers Group Campania ed interamente sponsorizzato da Google, durante il quale saranno offerte numerose sessioni che avranno come protagonisti: ambiziosi studenti, Professori del Dipartimento di Scienze e Tecnologie dell’Università “Parthenope” di Napoli, giovani  imprenditori ed aziende multinazionali.

Una location di eccezione ideale per accogliere un evento di questo tipo, mettendo a disposizione degli ospiti uno spazio confortevole e accogliente che fungerà da stimolo cognitivo e sarà in grado di creare l’atmosfera perfetta per un meeting sulle nuove tecnologie.

L’evento è totalmente gratuito e sarà l’occasione per condividere esperienze e impressioni sulle novità di casa Google che saranno sicuramente il tema principale dei talks previsti. Ma non solo, grazie alla collaborazione di realtà d’eccellenza come 012Factory, prima Academy in Campania per la formazione delle startup e primo centro di contaminazione multidisciplinare per l’imprenditoria innovativa, e Roll-Studio, agenzia di produzione digitale specializzata nello sviluppo frontend e backend di siti web e nella fornitura di servizi digitali, sarà data l’opportunità ai presenti di interfacciarsi con importanti realtà territoriali e di usufruire di utili consigli di orientamento professionale.

Il GDG Campania, quest’anno, ha accolto per primo l’invito della comunità Google Developers Group di creare ed avviare, nella propria community locale, un Women Chapter con l’obiettivo di avvicinare sempre più donne al mondo dell’informatica e della tecnologia. Il DevFest sarà dunque la giusta occasione per il GDG Campania di annunciare e presentare, con orgoglio, il GDG Women Campania.

Al termine delle sessioni, un barcamp, moderato da 012Factory, metterà a confronto speakers ed esperti che discuteranno di SmartCities e SmartPa con l’intento di definire strategie di pianificazione ubranistica tese all’ottimizzazione e all’innovazione dei servizi pubblici grazie all’impiego di nuove teconologie della comunicazione, della mobilità, dell’ambiente e dell’efficienza energetica al fine di migliorare la qualità della vita.

Il 23 Ottobre DevFest si sposta all’Università degli studi di Napoli “Parthenope” dove avrà luogo un hackhaton, maratona di 24h no-stop che metterà a confronto studenti ed appassionati. I partecipanti, singoli o team, dovranno realizzare un prototipo di applicazione con caratteristiche innovative su temi che verranno rilasciati il giorno prima. I progetti sviluppati verranno presentati dai partecipanti al termine delle 24 ore dinnanzi una giuria di esperti dei settori più disparati e saranno votati in base a quattro criteri di valutazione: innovazione, user experience, graphic design ed attinenza al tema scelto.

Il vincitore di questa edizione entrerà nell’Academy di 012Factory ed avrà la possibilità di seguire, con gli altri allievi già selezionati, un percorso formativo per l’imprenditoria innovativa considerato una eccellenza del Sud Italia dall’Expo delle Startup e case history campano.

Mercoledì 22 Ottobre 2014

9:30 – 10:00 Registrazioni

 

10:00 – 10:15 Presentazione GDG Campania, W-Chap, re.work e saluti

10:15 – 11:45 What’s new in Android L

Speaker: Patrick Arminio

Introduzione della più rivoluzionaria versione di Android, con un nuovo

linguaggio grafico, chiamato Material Design.

10:45 – 11:15 Introduzione ad Android Wear

Speaker: Alfredo Morresi

Scopriamo assieme Android Wear, la nuova piattaforma per il mondo del

wearable lanciata da Google lo scorso Giugno. Esamineremo le sue

caratteristiche principali, la specifica UX e come scrivere le prime

applicazioni.

11:20 – 12:00 Build an app with Angular.js

Speaker: Luigi De Rosa

Vediamo come è possibile programmare una semplice applicazione con

Angular.js in 30 minuti.

  

12:00 – 13:00 Google Maps API: Viaggi e non solo

Speakers: Luisa Tatoli, Renato Formato, Luigi De Rosa, Patrick Arminio,

Alberto Parziale

L’idea è quella di presentare progetti realizzati da Roll Studio, mostrando

casi concreti di applicazione delle API di Google map.

Presentazione di case histories (expedia, The most northern place, The

Welcome People, Sibarth Villas, Grano Armando, e molto altro ancora)

  

13:00 – 14:00 PAUSA PRANZO

14:00 – 14:20 Android: Be Material

Speaker: Pietro Alberto Rossi

Con l’avvento in Android di Material Design la modalità di immaginare

una applicazione è cambiata del tutto. Seguendo poche regole è

possibile creare applicazioni con un’esperienza utente ottimale e

soddisfacente per l’utente stesso.

Il nuovo termine “Visual Continuity” ci porta a pensare ad applicazioni

non più con processi visuali immediati e repentini ma con una gestione

che si avvicina alla naturalità delle cose materiali. Pochi movimenti della

testa e animazioni focalizzate per garantire la continuità visiva che

ciascun utente desidera.

  

14:20 – 15:00 NoSql

Speaker: Antonio Maratea

15:00 – 15:30 SQL vs NoSQL e intrecci vari

Speaker: Gennaro Ragucci

La sessione è incentrata sulla presentazione di una panoramica sui

moderni approcci riguardo ai sistemi di gestione delle basi di dati

paragonandoli a quelli più classici. Si tratta di un settore, in cui non è

sempre facile orientarsi e che vede un effervescenza di tecnologie in

rapido avanzamento e in forte concorrenza tra loro.

  

SHOW PROJECTS

15:30 – 15:45 A side project history: Pushline

Speakers: Gianluca Esposito, Davide Cerbo, Marcello Montemagno.

Col nostro side project, Pushline, proviamo ad unificare l’esperienza

Mobile e Desktop… e un domani quella tra tutti i devices…

Parleremo di come siamo arrivati al prodotto, quali tool abbiamo

utilizzato per coordinarci e quali problemi tecnici abbiamo incontrato nel

realizzare un prodotto che é composto da tre componenti: Desktop, Web

e Mobile. Illustreremo le tecnologie Google adottate.

15:45 – 16:00 Computer Vision: Visual object tracking with BDF

Speaker: Mario Maresca

In questa sessione sarà presentato un algoritmo sviluppato per la tesi di

Informatica Applicata riguardante la visione artificiale e in particolare il

tracking di oggetti senza una forte conoscenza a priori. L’algoritmo

presentato, chiamato Best Displacement Flow, è in grado di stimare lo

stato dell’oggetto in una sequenza video conoscendo solo l’apparenza

dell’oggetto nel primo frame. Quest’algoritmo è sviluppato per dispositivi

economici o hardware con bassa potenza di elaborazione ed è in grado

di processare i video in real-time. Possibili applicazioni sono nuove

interfacce uomo-macchine, gesture recognition e guida automatica di di

droni.

 

16:00 – 16:15 Napoli OnTheRoad – Anche Galileo usa Android

Speaker: Giovanni Meo – Valentina Lipari

Galileo e Android al servizio degli automobilisti napoletani per dare un concreto contributo al problema che affligge ogni grande metropoli: il parcheggio.

  

16:30 BARCAMP

Giovedi 23 Ottobre 2014

09:00 – 16:30 Hackaton


16:30 – 17:00 Presentazione Progetti e Premiazione

 

opencv-python
Standard

OpenCV / Python – Primi passi

 

L’utilizzo di OpenCV rende veramente semplice l’elaborazione di immagini e video ed è ancora più semplice scoprire come python si presti bene a questo utilizzo. Prima di entrare nei dettagli voglio fare un piccolo riepilogo di quello che stiamo per utilizzare:

PRO

  • Semplicità d’uso;
  • Velocità di scrittura del codice;
  • Sorgenti efficienti;
  • Utilizzo nativo di strutture dati efficienti (numpy);
  • Si può fare di tutto!

Continue Reading →

extendedcampania
Standard

Google I/O Extended Campania

Google I/O è una conferenza annuale tenuta da Google a San Francisco che, è ormai diventata un punto di riferimento per aziende, startups, sviluppatori e progettisti.

Il GDG Campania organizza l’edizione Extended che consisterà in tre giornate parallele con l’edizione di San Francisco con alcune esclusività.

Google I/O Extended è un evento totalmente GRATUITO ed è un’occasione per scambiare esperienze, impressioni sulle tecnologie Google e per costruire una rete di relazioni professionali.

L’iniziativa è rivolta a Studenti, Professionisti, Startups, Aziende e appassionati del settore.

L’evento si terrà nei giorni del 15 – 16 – 17 Maggio 2013.

Il link di riferimento con tutte le informazioni è il seguente:

Google I/O Extended Campania

Il link per le registrazioni:

Google I/O Extended Campania REGISTRAZIONE

Per semplificare le cose aggiungo il modulo di registrazione anche qui:

numpy4
Standard

Introduzione a Numpy

Python non è famoso per l’efficienza computazionale, ma esistono librerie ed estensioni che lo rendono adatto al calcolo numerico e ad alte performance. La prima fra tutte è sicuramente numpy. Troverete il sito ufficiale a questo indirizzo: numpy.org, mentre la documentazione qui: docs.scipy.org

Numpy è stata scelta del team di opencv per essere integrato all’interno del framework, infatti, la maggior parte delle operazioni vengono effettuate in strutture dati integrate in numpy. La prima struttura dati da comprendere sono gli array N-dimensionali ‘ndarray': Continue Reading →

opencv150x125
Standard

Computer Vision con OpenCV e Python – Introduzione & installazione

 

Uno degli argomenti più interessanti nel mondo della Computer Science è sicuramente la Computer Vision che possiamo definire in poche parole come:

Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions. Wikipedia

Quindi, brevemente, come la metodologia per l’acquisizione, l’elaborazione, l’analisi e la comprensione di immagini e dati dal mondo reale.

Tutta la Computer Vision ha solide basi matematiche, dunque per affrontare questo argomento dobbiamo essere a conoscenza di una certa quantità di teoria (o altrimenti ci potremmo trovare ad affrontare problematiche di non semplice risoluzione). Ad ogni modo non è per questo che siamo qui :) ma per introdurvi come poter effettuare queste operazioni all’apparenza complesse con pochi semplici strumenti. Il segreto sta tutto in un framework chiamato OpenCV che mette a disposizione tutto il necessario per le più disparate operazioni di image processing e per la ricerca di nuove e più performanti tecniche di analisi delle immagini.

Continue Reading →

sharedpref
Standard

[Android Lab] Shared Preferences

Oggi mi è stato chiesto se potessi fare un piccolo tutorial sulle Shared Preferences e come potrei non accontentare i miei lettori!!!

Cosa sono?

Le Shared Preferences permettono di salvare dei dati formati da una coppia chiave/valore (esattamente come in un dizionario) e renderli persistenti e recuperabili anche dopo la chiusura dell’applicazione, in questo modo possiamo salvare molto semplicemente alcuni dati importanti che vogliamo non vadano perduti. I tipi di dato che possiamo inserire sono i seguenti:

  • Boolean;
  • Float;
  • Int;
  • Long;
  • String;

Questo strumento però ci permette di fare molto di più! Ad esempio se abbiamo dei dati che vogliamo utilizzare in tutta l’applicazione invece di inviarli ad un activity all’altra utilizzando gli intent possiamo farlo tramite questo utile strumento. Questo metodo ci consente quindi di “snellire” l’applicazione evitando di avere dati ridondanti, e che appesantiscono la nostra applicazione.

Andiamo al sodo…

Abbiamo una classe denominata SharedPreferences che ci fornisce tutti gli strumenti di cui abbiamo bisogno senza complicarci troppo le cose. Come prima cosa dobbiamo utilizzare una SP questa può avere un nome (nel caso vogliamo crearne più di una, o se ci piace semplicemente tenere tutto sotto controllo) oppure essere anonima. Abbiamo due metodi per fare questo:

  • getSharedPreferences(String name, int mode):  abbiamo bisogno di specificare il nome della risorsa a cui vogliamo accedere e in che modalità (privata o accessibile a tutti);
  • getPreferences(int mode): come sopra ma abbiamo bisogno solo della modalità di accesso;

Dopo aver richiesto il file delle preferenze non ci resta che accedere in lettura/scrittura:

  • La lettura è estremamente semplice basta richiamare la preferenza come scritto sopra e richiedere il tipo di dato che ci interessa, ad esempio se è una stringa useremo getString(), un intero getInt() un boooleano getBoolean() e così via. Ogni metodo richiede due argomenti:
    1. La chiave utilizzata per memorizzare il dato;
    2. Un valore di default che sarà restituito nel caso non fosse stato trovato nessun dato;

// 0 corrisponde a modalità privata
SharedPreferences prefs = getSharedPreferences(prefsName, 0);
String nome = prefs.getString("Nome", "Nome non trovato");
  • La scrittura è un po più sofisticata poiché abbiamo bisogno di un oggetto della classe SharedPreferences.Editor per poter scrivere sul file. Fortunatamente la SharedPreference che andiamo ad utilizzare possiede già il necessario per poter scrivere su di essa, allora ci basterà invocare il metodo edit() e per poter scrivere ci basterà chiamare i metodi get<Type>() con il tipo di dato da inserire. Tutto quello che abbiamo fatto fin’ora però non va a scrivere direttamente sul file, ma per far questo dobbiamo eseguire commit() che conferma l’operazione:

SharedPreferences.Editor prefsEditor = prefs.edit();
prefsEditor.putString("Nome", "Emanuel");
prefsEditor.commit();

Questo è sostanzialmente tutto quello di cui c’è bisogno sapere, tutto molto semplice!

Lab

Bene ora apriamo Eclipse e proviamo a fare una piccola applicazione di esempio:

Creiamo la solita activity io l’ho chiamata SaveSharedActivity e nel layout ho aggiunto tre TextView:

  • Nome;
  • Cognome;
  • Email;

Tre EditText per inserire i campi sopraccitati e un bottone per passare alla seconda activity;

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".SaveSharedActivity" >
<EditText
android:id="@+id/eNome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tNome"
android:layout_marginLeft="18dp"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="textPersonName" />

<TextView
android:id="@+id/tCognome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/eNome"
android:layout_below="@+id/eNome"
android:layout_marginTop="17dp"
android:text="Cognome" />

<TextView
android:id="@+id/tNome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/eNome"
android:layout_alignParentTop="true"
android:layout_marginTop="24dp"
android:text="Nome" />

<EditText
android:id="@+id/eCognome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tCognome"
android:layout_below="@+id/tCognome"
android:layout_marginTop="25dp"
android:ems="10"
android:inputType="textPersonName" >

<requestFocus />
</EditText>

<TextView
android:id="@+id/tMail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/tNome"
android:layout_centerVertical="true"
android:text="Email" />

<EditText
android:id="@+id/eEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tMail"
android:layout_below="@+id/tMail"
android:layout_marginTop="29dp"
android:ems="10"
android:inputType="textEmailAddress" />

<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="55dp"
android:text="Salva e prosegui" />
</RelativeLayout></pre>

Nell’activity creiamo un attributo con tipologia “public static final String” (in modo che sia accessibile in tutto il progetto senza restrizioni):

public class SaveSharedActivity extends Activity {
    public static final String SharedPrefName = "Shared";

Creiamo i tre EditText con il bottone:

    private EditText eNome;
    private EditText eCognome;
    private EditText eEmail;
    private Button saveAndGoBtn;

L’onCreate conterrà le inizializzazioni dei quatro campi e l’assegnazione di un azione al Button

    private OnClickListener saveAndGoAction = new OnClickListener() {
    @Override
    public void onClick(View v) {
        // Richiamiamo la nostra preferenza tramite il nome
        SharedPreferences prefs = getSharedPreferences(SharedPrefName, 0);
        // Per poterla editare abbiamo bisogno di un oggetto Editor che ci è fornito dalla SP stessa
        SharedPreferences.Editor prefsEditor = prefs.edit();
        // Inseriamo tutte le righe chiave/valore di cui necessitiamo
        prefsEditor.putString("Nome", eNome.getText().toString());
        prefsEditor.putString("Cognome", eCognome.getText().toString());
        prefsEditor.putString("Email", eEmail.getText().toString());
        // Eseguiamo il commit per scrivere effettivamente nel file
        prefsEditor.commit();
        Intent intent = new Intent(getApplicationContext(), PrintShared.class);
        startActivity(intent);
    }
};

Abbiamo recuperato la SP tramite il metodo getSharedPreferences() e gli abbiamo assegnato come nome quello creato poco fa. Qui avevamo necessità di scrivere e abbiamo a questo scopo creato un oggetto della classe SharedPreferences.Editor, abbiamo inserito tre stringhe con i valori degli EditText e infine è stato effettuato un intent per richiamare la seconda activity chiamata PrintShared.

Il layout di PrintShared è veramente basilare solo tre TextView di tipo Large in cui inserire i dati presenti nella SharedPreference.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PrintShared" >

<TextView
android:id="@+id/printNome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="Nome"
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+id/printCognome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/printNome"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="Cognome"
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+id/printEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/printCognome"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:text="Email"
android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

Mentre  l’activity contiene i tre attributi che si riferiscono alle TextView e nell’onCreate andiamo ad assegnargli i valori nella SharedPreference.

SharedPreferences prefs = getSharedPreferences(SaveSharedActivity.SharedPrefName, 0);
this.tNome.setText(prefs.getString("Nome", "Nome non trovato"));
this.tCognome.setText(prefs.getString("Cognome", "Cognome non trovato"));
this.tEmail.setText(prefs.getString("Email", "Email non trovata"));

Abbiamo acceduto al nome precedentemente creato per recuperare la preference e letto i dati che erano al suo interno tramite i tre getString().

FINE!

Ecco un anteprima:

sahredprefpreview

Vi allego i file del progetto che ho utilizzato:

SharedPreferences Android Lab (185)
Standard

Buon Compleanno!

annivesario

Oggi è il primo anniversario del blog! Compie un anno di vita! Voglio ringraziare tutti gli utenti che hanno utilizzato e continuano ad utilizzare questo spazio, spero che possa essere stato utile a tutti quelli che hanno deciso di seguirlo, per me è stato fantastico poter scrivere per voi e far si che sia potuto crescere nel migliore dei modi. Il blog continuerà a sfornare contenuti sempre più ricchi ed interessanti!

Vorrei ora condividere con voi le statistiche per questo primo anno di vita:

http://jetpack.me/annual-report/34720355/2012/

Spero che continuiate a far sentire la vostra voce tramite i commenti e le email, siete sempre i benvenuti che siano critiche, domande o quant’altro :)

*Immagine in evidenza: http://www.roseblossomlegacies.com/2012/04/one-year.html

devfest_campania
Standard

DevFest Campania

 

Il Google Developers Group Campania in collaborazione conl’Università degli studi di Napoli Parthenope e l’Open Source Lab presenta:

DevFest Campania

Per la giornata del 6 Dicembre sono previste le seguenti tematiche:

  • Introduzione ad Android;
  • Introduzione a Cloud Computing e Google App Engine;
  • Google Cloud Messaging;
  • Advanced Android Technologies;
  • CodeLab Google App Engine;
  • CodeLab Android;
  • UniParthenope API Store;
  • Restful API software stack: how to deploy a FRAPI environment;
Per la giornata del 7 Dicembre:
  • Hackaton di un’intera giornata!
  • Gli siluppatori/teams migliori saranno invitati a presentare la propria applicazione con delle slides.
  • Tanti premi in palio!
L’evento si svolgerà presso l’Università degli Studi di Napoli “Parthenope” presso la Facoltà di Scienze e Tecnologie sita nel Centro Direzionale di Napoli, Isola C4.

INGRESSO GRATUITO!!!

Per maggiori informazioni sull’evento e per effettuare la registrazione è possibile riferirsi al seguente link:

DevFest Campania Registration 

O in alternativa potete utilizzare il seguente modulo:

python-logo-glassy
Standard

Installare ed integrare python nei SO

 

Come ho detto nel precedente articolo python è un linguaggio di programmazione multipiattaforma, cioè è possibile utilizzarlo su più sistemi operativi senza restrizioni derivanti da quest’ultimi. Ora vedremo come integrarli nei nostri sistemi.

I file per tutti i tipi di sistemi li trovate a questo indirizzo: http://python.org/download/

Continue Reading →

Python-Programming-Language
Standard

A Beautiful and Useful Programming Language: Python

Dopo tanto tempo che non pubblico un articolo voglio parlarvi di un linguaggio di programmazione che ultimamente sto utilizzando molto e che mi da sempre più soddisfazioni, sia per la sua semplicità che per la sua potenza! Come suggerisce il titolo dell’articolo quello di cui voglio parlavi è PYTHON!

Python è un linguaggio multipiattaforma, interpretato orientato agli oggetti, infatti, è fornito di un interprete che legge il codice python ed esegue le istruzioni al suo interno. Su sistemi Mac OS X e linux viene fornito di default insieme al sistema operativo, mentre su sistemi windows è necessario utilizzare l’installer per integrarlo nel sistema. Troverete sul sito ufficiale direttamente a questo indirizzo:

Python download

Inoltre troverete la documentazione per le varie versioni di python in questa pagina: http://docs.python.org/, basterà scegliere quale versione utilizzate e sarete reindirizzati verso la giusta sezione. 

In questa guida mi riferirò a python usando una terminologia familiare agli utilizziatori di sistemi unix-like (ma per chi vuole provarlo su windows non c’è quasi alcuna differenza se non in alcuni comandi specifici del terminale) Continue Reading →