Intervista con Aaron Ash, sviluppatore di Multifl0w, Barrel e IconSpiral

      Probabilmente pochi di voi conoscono il nome Aaron Ash, ma i nomi Multifl0w, Barrel e IconSpiral hanno sicuramente un significato per voi. Sto parlando dello sviluppatore di alcuni dei tweak più popolari disponibili in Cydia, uno sviluppatore che ha accettato di offrire quelli di ModMyi un'intervista aperta sulla sua vita. Troverai informazioni personali su Aaron Ash ma anche alcune informazioni sul mondo dei jailbreaker e la sua esperienza finora con lo sviluppo di tweak per Cydia.

      Ciò che Ash ha sviluppato finora potrebbe essere dimenticato se riuscisse a lanciare Polyonix, un tweak che consentirebbe di eseguire contemporaneamente più applicazioni sullo stesso schermo del tablet iPad.

JOSH: Raccontaci qualcosa di te: nome, occupazione, istruzione e qualsiasi altra cosa desideri condividere (se applicabile).
ARONNE: Mi chiamo Aaron Ash e vivo ad Athens, in Georgia. Attualmente sono al secondo anno presso l'Università della Georgia.

JOSH: Da quanto tempo stai programmando? In quali lingue sei esperto? Cosa ti ha portato a programmare in primo luogo?
ARONNE: Ho iniziato a programmare il mio primo anno di scuola superiore su calcolatrici TI-83+. Scrivevo programmi che rendessero estremamente facile risolvere i problemi che stavamo facendo in classe e li distribuivo ai miei amici. Ero un grande fan del gioco per PC Unreal Tournament 2004, che aveva il proprio linguaggio di scripting orientato agli oggetti chiamato UnrealScript. Ho iniziato a creare mod durante il secondo e il primo anno delle superiori e gestivo un server con persone che conoscevo online. Epic Games, la società che produce Unreal Engine, ha organizzato un concorso chiamato "Make Something Unreal Contest" per premiare le persone che realizzavano giochi che utilizzavano il loro motore. Ho partecipato a questo e ho finito per vincere qualche migliaio di dollari dopo il mio primo anno di scuola superiore. Questo è stato molto stimolante per me e mi ha aiutato a capire che non hai bisogno di esperienza scolastica o lavorativa per inseguire i tuoi sogni nel moderno mondo della tecnologia; hai bisogno di motivazione. Mi sono imbattuto in una citazione di John Carmack con cui sentivo di potermi davvero relazionare:

"Se vuoi partire e sviluppare qualcosa di nuovo e grandioso, non hai bisogno di milioni di dollari di capitalizzazione. Hai bisogno di abbastanza pizza e Diet Coke da tenere nel tuo frigorifero, di un PC economico su cui lavorare e della dedizione necessaria per portare a termine il lavoro.

JOSH: Quando sei stato coinvolto per la prima volta nella comunità del jailbreak? Cosa ti ha spinto a iniziare a sviluppare per Cydia e la comunità del jailbreak?
ARONNE: Ho ricevuto un iPhone 3G a maggio 2009. Ho effettuato il jailbreak a settembre dopo essere andato all'Atlanta Linux Fest e aver sentito parlare di tutte le cose interessanti che potresti fare con un iPhone jailbroken da un amico di mio fratello. Inizialmente volevo solo creare giochi per iPhone ma non potevo eseguire nessuna delle applicazioni che avevo creato sul mio dispositivo senza avere una licenza ufficiale per sviluppatore Apple. All'epoca non potevo ottenerne uno perché avevo meno di 18 anni. Ho scoperto che puoi eseguire liberamente qualsiasi applicazione sul dispositivo perché non è richiesta la firma del codice da parte di Apple (dopo il jailbreak). Ho trascorso molte lunghe notti navigando nei forum e leggendo tutte le cose interessanti che possono essere modificate. Ho capito subito che dovevo imparare Objective-C; c'erano troppe cose interessanti che mi stavo perdendo non sapendolo. Ho avuto molte difficoltà a configurare la toolchain perché non avevo un Mac. Alla fine ho installato la toolchain aperta sul dispositivo stesso. Ho compilato un'app "Hello World" e sono partito da lì.

JOSH: Qual è stata la prima applicazione che hai creato (AppStore o Cydia)? Quale applicazione/modifica della tua collezione è stata la più difficile da sviluppare?
ARONNE: La prima cosa che volevo fare era poter misurare le distanze con l'accelerometro. Ciò è teoricamente possibile se il dispositivo non cambia affatto la rotazione durante il movimento. Realisticamente, però, è impossibile. Ho scritto un'applicazione che mostrava la distanza approssimativa percorsa presupponendo che non ci fosse rotazione, e penso che abbia funzionato, ma l'intero problema della rotazione lo ha reso inutilizzabile. Il tweak che è stato il più difficile da sviluppare è probabilmente quello che ho nel dimenticatoio in questo momento chiamato "Polyonix" che consente all'iPad di eseguire più applicazioni delle dimensioni di un iPhone fianco a fianco contemporaneamente. È davvero fantastico e funziona davvero. Mi piacerebbe finirlo e pubblicarlo prima o poi, ma non ho il tempo adesso per dedicargli l'attenzione di cui ha bisogno.

JOSH: Hai avuto l'opportunità di partecipare al WWDC. Raccontaci un po' della tua esperienza.
ARONNE: La WWDC è stata un'esperienza fantastica sotto ogni aspetto. Ho avuto modo di uscire con persone che conoscevo online da un po', come saurik, DHowett, chpwn, britta, mxweas, Stimpy5050, Steven Troughton-Smith e altri. La notte prima dello "Steve Note", ci siamo accampati tutti e siamo rimasti svegli tutta la notte a parlare di Cydia, della storia del jailbreak, di Jailbreakme 3.0 (era in fase di sviluppo all'epoca) e abbiamo anche scritto del codice. Ho trascorso gran parte della settimana uscendo con questo gruppo di persone. Ci siamo divertiti moltissimo sperimentando iOS 5 e incontrando altri sviluppatori.

JOSH: Hai qualche progetto attuale o futuro (AppStore o Cydia) di cui sei disposto a parlare?
ARONNE: Ho Polyonix, il progetto parallelo di molteplici app per iPhone in lavorazione e alcune altre cose che potrebbero o meno realizzarsi. Suppongo che il tempo lo dirà.

JOSH: Di quali tweak/applicazioni Cydia non puoi fare a meno sul tuo dispositivo?
ARONNE: SBSettings di sicuro. Io utilizzo di più Twitter, seguito da Safari e iPod per quando cammino per il campus. Adoro mostrare Barrel alle persone interessate al mio lavoro di sviluppo per iPhone e utilizzo il mio tweak Multifl0w in modalità carte per passare da un'applicazione all'altra. Mi piace anche avere la macchina fotografica sempre con me. Non vedo l'ora che arrivi la prossima generazione di iPhone che, si spera, avrà una fotocamera ancora migliore.

JOSH: Qual è la tua visione del futuro di Cydia? Conosci eventuali nuove funzionalità o implementazioni imminenti che renderanno Cydia ancora migliore di quello che è?
ARONNE: Nel complesso sono abbastanza soddisfatto di Cydia. Ha i suoi difetti (pubblicità, "ricaricamento dei dati", lentezza a volte) ma fa il suo lavoro. Ho familiarizzato con il codice base di Cydia nella speranza di contribuire con qualcosa, ma non sono riuscito a trovare nulla che volessi aggiungere o modificare. Jay potrebbe non apparire molto sul fronte delle notizie, ma lavora molto duramente dietro le quinte.

JOSH: Per qualcuno che vuole imparare a programmare per AppStore e Cydia, quali metodi o percorsi suggeriresti? 
ARONNE: Iniziare! Seriamente, non puoi realizzare qualcosa che non hai mai iniziato. Dai un'occhiata ad alcuni semplici progetti open source, scopri come compilarli dal codice sorgente e inizia a cambiare le cose. Se vuoi scrivere modifiche, ti consiglio di controllare del codice dai profili github di rpetrich o chpwn. Quando ho iniziato a studiare UnrealScript non sapevo nemmeno cosa fosse una funzione, e poiché non c'era documentazione per il linguaggio per persone che non avevano mai programmato prima, ho finito per capirlo semplicemente cambiando le cose e vedendo cosa veniva compilato e cosa faceva 'T. Non aver paura di registrare le cose. Se non hai mai scritto nulla e non capisci come funziona il flusso di un programma, basta mettere un NSLog all'inizio di alcune funzioni e guardare il syslog. (Ad esempio, NSLog(@"hello world!"); scrive hello world! nel syslog. Puoi visualizzare il syslog accedendo al dispositivo tramite SSH, installando "Syslog Toggle" da Cydia per attivare il syslog e digitando "tail -f /var/log/syslog" nella sessione SSH vedrai anche i messaggi di registro di iOS e di altri programmi, ma puoi tracciare il tuo programma abbastanza facilmente). Continua a hackerarlo. Se rimani bloccato, usa Google. Continua a provare a fare le cose diversamente. "La persistenza è il miglior strumento dell'hacker", come direbbe p0sixninja. Passeranno alcune settimane di sessioni di programmazione a tarda notte e, subito dopo, milioni di persone utilizzeranno la tua applicazione e tu non sarai nemmeno in grado di stargli dietro. Buon hacking!