Carlo Pelliccia - Pagina Web personaleCarlo a fumetti

Android Hacking su ioProgrammo 184

Notizia pubblicata il 29 Marzo 2013, alle ore 18:13

ioProgrammo 184

Confermo le voci: ioProgrammo è diventato bimestrale.

Ho ricevuto domande in merito da parte di alcuni affezionati lettori, allarmati per aver letto "Marzo/Aprile" sulla copertina del numero 184, senza ulteriori spiegazioni all'interno della rivista.

Ho avuto qualche difficoltà nel rispondere alle domande sul tema, perché in verità non ne sapevo più dei lettori. La conferma più o meno ufficiale che la rivista sia divenuta bimestrale l'ho avuta solo a cose fatte. In quanto collaboratore e "firma storica", mi sarei aspettato di ricevere una comunicazione da parte dell'editore, ma così non è stato. Ne prendo atto.

La cosa che conta di più, però, sono i contenuti, e quelli ci sono come sempre.

A mia firma trovate l'articolo di copertina, sul tema "Android Hacking": una guida alle tecniche di disassemblaggio e decompilazione delle app Android: come risalire al codice sorgente di un'app partendo dal suo pacchetto APK di installazione. L'articolo dimostra quanto sia facile, in Android, ricostruire il sorgente di un'app, ma lo fa a fin di bene: la seconda parte del tutorial è dedicata alle tecniche che i programmatori possono impiegare per vanificare la decompilazione delle proprie app.

Anticipo che nel prossimo numero, che sarà quello di "Maggio/Giugno", troverete un articolo scritto a quattro mani da me e da Fabio Cuomo, su un argomento cross tra Android ed iOS molto interessante.

Permalink

Un motore di ricerca fai-da-te, su ioProgrammo 183

Notizia pubblicata il 10 Febbraio 2013, alle ore 15:37

ioProgrammo 183

In edicola trovate ioProgrammo 183, il numero di Febbraio della rivista.

Ci sono due miei articoli all'interno, e sono proprio i due che si spartiscono la copertina del numero.

Google fai-da-te: creiamo un motore di ricerca
Si tratta dell'articolo che, senza dare troppi dettagli, ho anticipato nel mio post precedente: una lunghissima cavalcata (ben 14 pagine), alla scoperta di come si realizza un motore di ricerca. Non un motore di ricerca semplice, come possono essere quelli utilizzati per cercare contenuti nell'archivio di un blog o di un piccolo sito, ma un vero e proprio motore di ricerca per il Web, a là Google, per capirci (ecco il perché del titolo scelto poi dalla redazione). Tre sono i componenti in gioco: la progettazione di un archivio efficiente, lo sviluppo di uno spider che se ne vada in giro per il Web ad indicizzare siti e pagine, e la costruzione di un'interfaccia di interrogazione, attraverso la quale gli utenti possono svolgere le loro ricerche. Diverse sono le tecniche discusse: si parte con l'organizzazione dei dati, al fine di ottenere di un database relazionale idoneo ed efficiente, per passare poi alle tecniche da applicare durante le fasi di indicizzazione e la ricerca. Imparerete cosa sono le stop word, cosa significa stemming, e come si possono costruire strategie di rilevanza dei risultati. Si arriva infine a programmare una routine che calcola la popolarità delle pagine indicizzate, al fine di assegnare loro una precedenza durante l'estrazione dei risultati di una ricerca, emulando in maniera semplificata l'algoritmo Page Rank che ha decretato il successo di Google. Attenzione: non si tratta di sola teoria. Come sempre, tutto è corredato da fiumi di codice, ben documentato e commentato riga dopo riga. Al termine del tutorial, quindi, ci si trova ad aver realizzato insieme tutti i componenti descritti nel corso delle pagine precedenti. Le tecnologie utilizzare per l'implementazione sono Java e MySQL.
Mi sono divertito molto nel realizzare questo articolo un po' diverso dal solito, e credo che anche voi potrete divertirvi nel comprendere un po' più a fondo come lavora un vero motore di ricerca. Non perdetelo!

Andiamo alla scoperta di Android 4.2
Già qualche mese fa avevo assolto il compito di spiegare agli sviluppatori Android le novità di Jelly Bean rispetto al suo predecessore Ice Cream Sandwich. Adesso svolgo nuovamente lo stesso ruolo, raccontando cosa cambia dalla prima release di Jelly Bean (Android 4.1) alla seconda e più recente (Android 4.2). Le novità, questa volta, sono un po' meno sostanziose (si tratta pur sempre di una minor release), ma comunque molto interessanti. Il focus, in particolar modo, viene messo sui daydream e sui lockscreen widget.
Un daydream, nel gergo del nuovo Android, è un po' l'equivalente di un salvaschermo su un PC tradizionale, anche se un daydream può svolgere anche altri compiti oltre a quello di evitare che il display si rovini. Entra in funzione quando il device viene messo in carica, o quando lo si aggancia ad un display secondario. A differenza di un comune salvaschermo, un daydream può anche essere intererattivo: l'utente può interagire con esso come se si trattasse di un'applicazione.
Un lockscreen widget, invece, è un widget simile a quelli che si possono posizionare a piacimento sulla home screen di qualunque dispositivo Android, con la differenza che può essere posizionato sul lockscreen, ovvero sulla schermata di sblocco del telefono o tablet. Attraverso un lockscreen widget, quindi, si possono realizzare funzioni che l'utente può visualizzare e sfruttare anche quando il suo telefono è bloccato.
Sulla rivista e sul CD-Rom allegato troverete esempi di implementazione sia di un daydream che di un lockscreen widget.

Permalink

JavaScript ed oltre, su ioProgrammo 182

Notizia pubblicata il 10 Gennaio 2013, alle ore 23:43

ioProgrammo 182

Buon anno a tutti!

Il 2013, dal punto di vista delle mie pubblicazioni, si apre con il numero 182 di ioProgrammo.

In copertina lo speciale del mese: "HTML5 & JavaScript ultima frontiera".

Due dei tre articoli che formano la cover story sono usciti dalla mia penna.

AngularJS
AngularJS è il nome di una framework JavaScript, sponsorizzato da Google, che introduce nello sviluppo web client le pratiche MVC ben note ai programmatori enterprise. Queste pratiche permettono di scomporre le applicazioni in più strati indipendenti e coesi, aumentando la semplicità di sviluppo e la robustezza complessiva del risultato. Ora che le applicazioni web client-side, grazie agli strumenti di HTML5 e alla sempre più dopata potenza di JavaScript, si sono fatte complesse, è sentore comune che anche la loro progettazione e la loro organizzazione debba fare un passo avanti. Tra gli strumenti che consentono la separazione del compiti nelle applicazioni HTML5, AngularJS si distingue per semplicità ed efficacia. In questo articolo il framework viene introdotto al lettore che non lo ha mai utilizzato in precedenza, attraverso alcuni esempi pratici.

Google Dart
Il secondo articolo dà uno sguardo aldilà di JavaScript. Sempre per le stesse ragioni citate poc'anzi, qualcuno si inizia a chiedere se non sia il caso di superare le limitazioni di JavaScript, creandone una nuova versione potenziata che possa raccoglierne l'eredità. Google stessa, che su JavaScript ha costruito parte del suo impero, non esclude questa possibilità, anzi la sostiene. Dart è la proposta di Google per rimpiazzare (gradualmente) JavaScript. Dart è, per molti versi, un JavaScript potenziato: aggiunge la tipizzazione delle variabili, permette una programmazione orientata agli oggetti degna di questo nome, favorisce una migliore strutturazione delle applicazioni introducendo il concetto di libreria, fa proprie alcune conquiste che JavaScript raggiunge attraverso framework esterni come jQuery. L'articolo introduce il linguaggio al lettore, ne illustra le principali differenze con il suo predecessore e mostra come utilizzare produttivamente Dart sin da subito, nel mondo reale.

Il mese scorso, per ragioni di tempo legate alla concitazione delle consegne pre-natalizie, non ho fatto in tempo a segnalarvi la disponibilità di ioProgrammo 181. Me ne scuso, e vi invito naturalmente a cercarlo ancora in edicola. All'interno c'è un mio articolo sui fragments di Android, uno strumento per la costruzione di interfacce utente modulari, capaci di adattarsi a display di dimensioni differenti. I fragments permettono di creare velocemente delle applicazioni che funzionano al meglio tanto sugli smartphone quanto sui tablet, senza la necessità di dover programmare due applicazioni separate.

Colgo infine l'occasione per anticipare che nel prossimo numero, quello di Febbraio, ci sarà un mio lunghissimo articolo, che sarà anche quello di copertina, di cui sono particolarmente orgoglioso. Ma per ora non aggiungo altro :)

Permalink

EOF