Mopapp, il servizio per sviluppatori mobile, è in beta pubblica!

martedì, 28 settembre 2010 16.58 by Marco Bellinaso

Dopo molti mesi di lavoro più o meno segreto (con l'amico e collega Alberto Falossi e con i colleghi di GetConnected e AnguriaLab), e un paio di mesi di beta privata (annunciata su iSpazio per l'Italia e da TechCrunch Europe per il resto del mondo), finalmente possiamo annunciare pubblicamente che Mopapp.com è disponibile in beta per tutti!

Cos'è e cosa fa Mopapp?  E' un servizio web-based orientato agli sviluppatori per piattaforme mobile che permette di tracciare, analizzare e rappresentare i download, le vendite, i ricavi e i profitti delle proprie applicazioni. A differenza dei competitor (specializzati per iTunes App Store), Mopapp si integra automaticamente con i maggiori store, quali iTunes App Store, Google Android Market, RIM App World, MobiHand e BlackBerry. Può quindi essere utilizzato da chi pubblica applicazioni per iPhone/iPad, Android, BlackBerry, Symbian e Windows Mobile. Inoltre, tramite l’utilizzo di una API o di un file CSV custom, è possibile importare e far analizzare dati proveniente da qualsiasi altro store o database (utile ad esempio per chi vende applicazioni tramite il proprio sito e uno script PayPal).

Si ma...perchè è utile? Beh sostanzialmente perchè i vari store o hanno dei report assolutamente limitati, criptici e con poche informazioni...o proprio non ne hanno! Tipicamente lo sviluppatore deve scaricarsi i CSV con i dettagli delle vendite/download per le diverse settimane o mesi, copiarli tutti in un unico Excel, ordinarli/filtrarli in modo opportuno, e poi configurare una serie di grafici per estrarre le info che desidera (es: quale app sto vendendo di più? in quale country? per che modello di telefono? le vendite sono aumentate o diminuite nella versione 2.0 rispetto alla 1.0? E nell'ultimo mese?...)

Se sembra complesso (o perlomeno una gran rottura, dato che è da fare perlomeno ogni qualche settimana, se non ogni qualche giorno, se si vuole avere sempre il polso di come stanno andando le cose) sappiate che lo è molto di più :)
Infatti le vendite saranno espresse con valute diverse a seconda della country del compratore, ogni store ha il suo formato proprietario (quindi bisogna farsi uno script di conversione, se si vogliono sommare i dati provenienti da più store) e le sue policy e regole per calcolare il guadagno netto (ovvero quello che paga l'utente meno la commissione dello store stesso). Quindi...lasciatelo fare a Mopapp, che essendo un servizio dedicato cerca di fornire tutte le elaborazione e rappresentazioni di cui potete aver bisogno (anche quelle che magari non vi erano ancora venute in mente magari). Vi costerà molto meno tempo (qualche minuto per censire le applicazioni da tracciare...e poi farà tutto lui...dovrete solo guardarvi i report) e fatica, permettendovi di concentrarvi sullo sviluppo della vostra applicazione, piuttosto che su script, database e grafici per l'analisi delle sue vendite e del feedback che gli utenti ne danno!

Altre funzionalità includono:

  • grafici per applicazione, store, piattaforma, modello di device, country, valuta
  • possibilità di ricevere i report via mail, settimanalmente o mensilmente
  • calcolo automatico del profitto a partire dal fatturato (ovvero vengono scorporate le commissioni dello store, a seconda delle percentuali e delle regole specifiche di ognuno)
  • conversione tra valute (tramite tassi di conversioni storici, relativi a ciascuna data di acquisto) e unificazione per il calcolo dei totali
  • client iPhone e Android nativi
  • browsing dei report compatibili con iPad e gran parte dei moderni device mobili, grazie al rendering javascript/html5 dei grafici piuttosto che tramite tecnologia Flash
  • supporto API per integrazione con altri store
  • importazione delle recensioni e commenti pubblicati dagli utilizzatori nei vari store

Nient'altro? Stiamo lavorando su parecchie altre idee ed evoluzioni, quindi...stay tuned! (tramite Twitter e blog)

Vi lascio con un po' di piccoli screenshot, e vi invito ad andare sul sito per vederne altri, provare la demo interattiva, e registrarvi gratuitamente per provarlo concretamente!

Correntemente valutato 3.0 da 15 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , ,
Categorie:   Business | Sviluppo software | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (4) | RSS CommentiRSS comment feed

Cosa NON fare ad un colloquio di lavoro

mercoledì, 6 gennaio 2010 13.14 by Marco Bellinaso

Come ho già avuto modo di dire, in GetConnected e AnguriaLab stiamo cercando nuovi sviluppatori. Negli ultimi mesi ho partecipato come "scrutinatore" a parecchi colloqui, un'esperienza che non avevo mai avuto modo di fare prima e che può essere piuttosto interessante. Abbiamo conosciuto diverse persone molto interessanti e motivate, ma purtroppo sono state molto di più le esperienze negative, dove già dopo poche domande era chiaro che il candidato non era adatto a far parte del team. In questo post vorrei provare a raccogliere parte delle situazioni che mi si sono presentate (anche in modo ricorrente) e che secondo me qualsiasi candidato dovrebbe invece assolutamente evitare. Il tono è un po' critico, lo ammetto, ma essendo questo post una sorta di sfogo...

1) Alla domanda "hai già visto cosa facciamo?" rispondi di NO? Ma come, abbiamo 2 siti web, un tot di articoli e recensioni che parlano dei nostri prodotti e attività...e non hai speso nemmeno 5 minuti per informarti? Si presume che dopo tutto non ti interessi troppo lavorare con noi, o che comunque ti faccia lo stesso che lavorare per qualche altra azienda.

2) Ti presenti come candidato per una posizione di Web Developer, già con esperienza, e alla domanda "Sai che cos'è AJAX" rispondi di NO? Cioè, non si fa che parlare di AJAX da anni, su qualsiasi sito/rivista/blog/libro di programmazione web ma anche su siti di informatica e tecnologia in generale...e tu non sai neanche per cosa sta l'acronimo e descrivere vagamente cosa fa e a cosa serve? Non dico conoscere il metodo particolare di jQuery o Prototype, ma in generale come funziona e perchè esiste. Almeno prima di iniziare i colloqui studia per qualche giorno per sapere almeno di cosa si parla nel lavoro che vuoi fare.

3) Ti presenti come DBA e progettista di DB Sql Server, e non sai cosa sono gli indici clustered? Lo dovrebbe sapere anche un buono sviluppatore...figuriamoci un DBA!

4) Alla domanda "ma tu cosa vorresti fare qui?" rispondi "mah, non so, il programmatore o il sistemista". Il programmatore o il sistemista??? Ti pare la stessa cosa? Perchè non il riparatore di PC allora? O il pizzaiolo. Bisogna avere le idee chiare su quello che si vuol fare, e farlo con passione. Se ti fa lo stesso fare un lavoro o un altro diverso vuol dire che sostanzialmente non te ne frega nulla e ti basta fare le tue 8 ore di qualcosa e portare a casa lo stipendio.

5) Sei appena uscito dall'università e vuoi cominciare subito come PM? Lo so, ci sono molte aziende (di solito multinazionali) che assumono un tot di profili del genere e a loro può andare benissimo. Se però ti presenti ad un'azienda che cerca sviluppatori, e che non è abbastanza grande da aver bisogno di PM a iosa, forse hai sbagliato qualcosa...Tra l'altro è mia opinione personale che per fare il PM tecnico bisogni farsi almeno un po' di anni di esperienza come developer, altrimenti è difficile che gli sviluppatori che si gestiscono abbiano grandissima considerazione del PM (leggi: riescono a prenderlo in giro e fare quello che vogliono). Fa così schifo programmare, dato che hai studiato Informatica? O pensi di aver già imparato tutto quello che serve sapere in 2 o 3 esami di programmazione?

6) Ti viene fatta una domanda, dai la tua risposta, e ti viene detto che non è corretta e che la risposta migliore è un'altra? Se sei sicuro della tua risposta motivala, cerca di convincere l'interlocutore che sai di cosa parli. Ma fallo con tranquillità, e soprattutto ascolta anche le motivazioni di chi ti sta di fronte. Ti sentirti attaccato e non arrampicarti sugli specchi per difendere la tua posizione a tutti i costi, anche quando magari in realtà ti sei un po' reso conto che forse non ci avevi pensato a quella cosa...Se ti comporti così ad un colloquio, come ti comporteresti all'interno di un team quando si discute assieme di scelte tecniche più o meno importanti da prendere per un progetto?

7) Ti presenti dicendo che hai una grande passione per la programmazione e le cose innovative. Perfetto! Allora perchè non leggi un singolo blog o rivista tecnica, non conosci neanche i nomi dei siti più famosi, e non hai mai lavorato su un tuo progetto personale (open-source o meno) oltre a quelli commissionati al lavoro o durante gli studi? "Passione" non è solo una parola "standard" da scrivere nei CV, va dimostrata con i fatti. Se non ce l'hai, almeno non nominarla.

8) Se ti viene chiesto se hai qualche domanda sull'azienda e quale sarebbe il tuo ruolo, cosa rispondi? Che non hai domande? Cioè, non ti interessa sapere se abbiamo già in programma qualche progetto per te, o che strada seguirà l'azienda nei prossimi tempi? Consulenza? Prodotti? Che prodotti? Organizziamo dei corsi di aggiornamento? Niente di tutto questo? Ah si, vuoi sapere se ci sono i buoni pasto. Mi sembra del tutto lecito...ma se la tua unica preoccupazione è quella, probabilmente ti conviene imbucarti in qualche grande azienda dove a nessuno importa chi fa cosa e dove si va. (e dato che in Italia non ci sono tantissime aziende corporate, forse dovresti fare qualche riflessione)

Sono sicuro di aver tralasciato varie situazioni simili, ma avete capito il senso. Ripeto, abbiamo conosciuto alcune persone davvero in gamba dotate di entusiasmo, capacità tecnica e con cui umanamente si parla proprio bene assieme. D'altra parte queste sono solo una piccola frazione del totale, e dispiace vedere che l'informatica non sia più una sorta di "vocazione", qualcosa che si vuol fare (e si fa, fosse anche solo per conto proprio) perchè piace (come era una volta...ah, i tempi che passano...:) ma un lavoro come un altro, che si è scelto di fare perchè pareva meno peggio o meno inflazionato delle alternative. Le stesse persone che hanno seguito questo ragionamento sono di solito quelle che si lamentano che non si trova lavoro, o che sono pagate poco e che fanno lavori poco gratificanti. Ma cosa hanno fatto per cambiare questa situazione? Di aziende che cercano sviluppatori ce ne sono, e molte, ma cercano appunto sviluppatori e non generici impiegati. La differenza c'è e si vede...

Correntemente valutato 4.2 da 21 utenti

  • Currently 4,190476/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Categorie:   Business
Azioni:   E-mail | Permalink | Commenti (5) | RSS CommentiRSS comment feed

GetConnected cerca nuovi sviluppatori!

venerdì, 11 dicembre 2009 14.09 by Marco Bellinaso

La società per la quale lavoro, GetConnected Srl (assieme alla spin-off AnguriaLab LLC) cerca nuovi sviluppatori da inserire nel proprio organico, nella sede di Bologna (pressi del centro). Le figure che cerchiamo sono dei buoni programmatori / analisti, con una discreta esperienza lavorativa, ma anche dotati di molta passione e voglia di imparare e migliorarsi costantemente. Programmatori che ancora lavorano con VB6 e che almeno per conto proprio non si sono aggiornati, che non sanno cosa sia AJAX / jQuery / REST / MVC, che non leggono nessun blog tecnico e che sostanzialmente vogliano fare un lavoro "comodo" senza faticare troppo per restare aggiornati...astenersi prego! :)

Le tecnologie da conoscere? In GetConnected si lavora molto con .NET, Java, Adobe Flex e Flash, iPhone / BlackBerry / Android SDK...and more. Sviluppiamo app web-based (molto AJAX), portali (Alfresco, di cui siamo partner, o cose custom), servizi e app per telefoni (al momento iPhone, Android, BlackBerry e WinMobile...ma vorremmo andare anche su Nokia/Symbian con Flash Lite o Java). I candidati ideali devono avere una buona conoscenza di almeno una delle tecnologie citate, meglio se un paio. E ovviamente una conoscenza di base su tutto quello che ci sta attorno (DB SQL Server / MySql, web server, HTML, CSS, i pattern più diffusi, la capacità di analizzare problemi e fare delle stime...)

Se state cercando lavoro o quello attuale vi annoia e non vi stimola, e quanto detto sopra non vi spaventa (anzi!) allora potete contattarci per venire a conoscerci! 

Correntemente valutato 3.0 da 5 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , , , , , , ,
Categorie:   Business | Sviluppo software | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

99 (o più) idee per il tuo prossimo logo o web design

sabato, 13 giugno 2009 12.56 by Marco Bellinaso

Ideare, scegliere e realizzare il logo per un'applicazione o un sito web è un'attività critica e importante. Una scelta sbagliata può dare un'idea negativa all'utente ancora prima che questo abbia effettivamente valutato l'opera. Anche se il logo non è "brutto" ma è piacevole e realizzato in maniera professionale, non necessariamente rifletterà in maniera opportuna "l'anima" dell'applicazione/sito. Magari è troppo serio e cupo per il target giovane al quale ci si rivolge...o viceversa.

Ecco perchè è importante affidarsi a dei professionisti ai quali spiegare dettagliatamente cosa fa il prodotto, a chi si rivolge, che idea deve suggerire il logo, ecc. Purtroppo anche il grafico più bravo non ha delle idee limitate e avrà comunque un proprio gusto personale che tenderà ad inserire in qualche modo nelle proprie proposte. Se il grafico è un freelance poi, diventa troppo dispendioso fargli fare decine di bozzetti diversi, o addirittura commissionare i bozzetti a grafici diversi per poi scegliere il preferito da finalizzare.

O almeno era così per chi non conosce 99designs! Tramite questo servizio (fondato dal co-fondatore del famosissimo SitePoint...ovvero il corrispettivo di HTML.it a livello mondiale) è possibile richiedere una qualsiasi realizzazione grafica (non solo loghi ma anche siti web, design per cancelleria, magliette, banner, cartelloni pubblicitari ecc.) creando un vero e proprio contest. In pratica si descrivono le proprie necessità e le proprie preferenze sullo stile, si offre un premio in dollari (vedere qui per i premi minimi per le varie categorie), si paga e si attendono le prime proposte! Il contest dura una settimana di default, ma può essere ulteriormente esteso. Sebbene sia sempre prepagato, può essere garantito o meno. "Garantito" significa che bisogna per forza scegliere un vincitore: questo tipicamente attira più partecipanti perchè questi sanno che almeno uno dovrà necessariamente vincere; d'altra parte espone anche alla possibilità che non ci piaccia nessun design ma si debba comunque scegliere e pagare qualcuno. I contest non garantiti invece forse attirano un po' meno gente (ma dipende anche dalla somma offerta!) ma consentono di venire rimborsati se non si vuole scegliere nessuno dei design proposti.

Con GetConnected abbiamo usato con soddisfazione 99designs per il logo di AnguriaLab, spin-off che sviluppa applicazioni per iPhone e altre piattaforme mobile.Volevamo un logo che fosse bello da vedere, ma che suggerisse anche simpatia, freschezza e divertimento. Il risultato direi che c'è!

La cosa che ci è piaciuta di più di 99designs è stata proprio la possibilità di poter scegliere tra decine e decine di idee anche molto diverse; è stata un'opportunità che non avremmo mai potuto avere seguendo la strada tradizionale. I design proposti possono essere commentati e si può chiedere all'autore di apportare varie modifiche, un po' per volta, fino ad arrivare alla versione che si ritiene ottimale. Per il logo di AnguriaLab abbiamo trovato dei grafici veramente disponibilissimi alle modifiche...pure troppo, visto che alla fine ci è dispiaciuto premiarne solo uno!

Consiglio: aspettate fino alla chiusura per la scelta finale. Il logo che abbiamo scelto per il nostro contest è stato inviato a un'ora dal termine (la durata totale è stata di 7 giorni), quando ormai eravamo assolutamente convinti di un'altra idea inviata già il secondo giorno!

Finito il contest molti grafici ritirano le proprie proposte, probabilmente per il timore che il gestore del contest rubi le loro idee senza averli premiati. Ecco perchè incollo di seguito uno screenshot con varie proposte di un contest ancora in corso, anzichè il nostro :)

 

P.S: leggi la segnalazione originale di Alberto Falossi.

Correntemente valutato 3.3 da 6 utenti

  • Currently 3,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , ,
Categorie:   Business | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Programmatore web/ajax? Vinci un premio in denaro...e un lavoro!

venerdì, 17 aprile 2009 18.42 by Marco Bellinaso

GetConnected è l'azienda bolognese con la quale sto lavorando da oltre un anno, in maniera sempre più stretta. Assieme a loro ho pubblicato Locomotimes (tra che l'altro già da qualche giorno ha superato i 20.000 download!) e stiamo lavorando assieme anche su nuovi prodotti. Il lavoro non manca e anzi sembra che le persone non siano mai abbastanza per tutti i progetti che escono, sia come commesse da clienti...che come prodotti commerciali. GetConnected sta quindi cercando nuovi programmatori da assumere...possibilmente giovani entusiasti, con una vera passione per l'informatica, che abbiano già una discreta esperienza ma che abbiano anche voglia di imparare ancora, lavorando su idee e tecnologie interessanti e moderne.

Come? Avete già sentito queste cose milioni di volte, per poi trovarvi di fronte al solito manager tecnicamente incompetente al momento del colloquio, che non valuta con il dovuto interesse (e rispetto) tutti i progetti, i software e i siti fighissimi che avete creato, magari da soli, con amici, nel tempo libero, per passione oltre che per professione?

Per dimostrare con i fatti che sono diversi, i ragazzi di GetConnected hanno dato il via ad una specie di concorso: inviate le vostre realizzazioni migliori in ambito web (basta anche solo il link al sito online, se non potete/volete spedire il sorgente) e avrete la possibilità di vincere il premio in denaro di 300€. Non male, per una cosa che avete già realizzato e che qualcuno vi chiede di mostrargli, no?

I progetti dovrebbero essere siti/servizi web e se volete vincere è meglio che siano in qualche modo innovativi, come idea e/o come tecnologie usate. Qualche paginetta fatta in Classic ASP per gestire un guestbook o delle news? mmm...no grazie! Un servizio sviluppato con ASP.NET / PHP / RoR con AJAX a gogò, mappe, mash-up e utilizzo di toolkit e framework vari? Fatevi sentire subito!

Il premio in denaro sarà solo per uno, ma tutti i partecipanti saranno presi in considerazione per una assunzione e/o collaborazione. Solo se lo si desidera ovviamente. Si può anche partecipare, vincere il premio e scappare...ma poi non dite che gli informatici in gamba non riescono a trovare (o cambiare facilmente) lavoro eh?! Wink

Correntemente valutato 2.4 da 11 utenti

  • Currently 2,363636/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , ,
Categorie:   Business | Sviluppo software | Tecnologia
Azioni:   E-mail | Permalink | Commenti (2) | RSS CommentiRSS comment feed

Controllare gli orari dei treni con Locomotimes per iPhone

sabato, 4 aprile 2009 07.32 by Marco Bellinaso

Leggere libri di programmazione senza poi programmare e provare con mano quanto studiato vuol dire non aver imparato nulla. Mettersi li a realizzare i soliti esempi semplici e banali è ben poco divertente e anche poco utile. Ecco perchè per fare pratica ho voluto realizzare (assieme ai ragazzi di GetConnected) una applicazione reale, che non fosse troppo complessa ma che non fosse neanche un giocattolo.

Il risultato è Locomotimes, un'applicazione che permette di consultare in modo semplice e veloce gli orari dei treni per qualsiasi tratta nazionale e verso molte città europee. Le funzionalità sono parecchie; non mi soffermo qui sui dettagli perchè trovate tutto sulla pagina di iTunes o di GetConnected (qui c'è anche un video che mostra tutte le funzionalità), ma in breve:

- elenco indicizzato e filtrabile di tutte le stazioni supportate
- possibilità di includere solo le soluzioni di viaggio con determinati tipi di treno
- un sacco di informazioni nei risultati (partenza e arrivo non solo per il viaggio totale ma anche per tutti i cambi, alert se i cambi sono troppo ravvicinati, tipi di treno, durata del viaggio, tariffe di prima e seconda classe, link per l'aquisto online...)
- cronologia delle ricerche passate (così che fatta una volta sia possibile consultare i risultati in futuro senza dover fare un'altra connessione)

Per chi come me prende spesso il treno credo che l'applicazione possa essere molto utile. Si, lo so che il sito di Trenitalia può essere consultato tramite Safari...ma occorre 10 volte lo stesso tempo, pazienza e traffico dati. L'applicazione sarà gratuita per un po', quindi...se avete un iPhone andate a scaricarla subito! ;)

NOTA: in realtà lo sviluppo di questa applicazione è terminato da almeno un mese...nel prossimo post racconterò perchè ci abbiamo messo così tanto per essere pubblicati online e darò qualche consiglio per evitare un'attesa logorante :)

Correntemente valutato 5.0 da 6 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Business | Mac OS X | Sviluppo software
Azioni:   E-mail | Permalink | Commenti (10) | RSS CommentiRSS comment feed

Mini recensione BlackBerry Bold

mercoledì, 21 gennaio 2009 08.14 by Marco Bellinaso

Esattamente un mese fa ho ricevuto in "prestito a scadenza indeterminata" (grazie ad Alessandro, Federico, James e Davide!) uno dei recenti BlackBerry Bold. Da allora il mio iPhone 3G è rimasto spento e chiuso in un cassetto. Il motivo è presto detto: sebbene iPhone abbia un'interfaccia utente e un tipo di interazione che non ha pari in nessun'altro telefono, la sua effettiva utilità "sul campo" risulta limita da almeno due fattori:

1) Le limitazione che Apple impone agli sviluppatori di terze parti: non poter scrivere applicazioni che girano in background significa ad esempio non poter avere client Messenger, Gtalk o Skype sempre attivi e pronti a ricevere messaggi. Oppure significa non poter ricevere eventi di sistema in qualsiasi momento (nuovo SMS o mail in ingresso) per scatenare qualche operazione particolare. Non poter accedere a varie funzioni telefoniche (invio SMS, gestione completa della fotocamera ecc.) riduce ulteriormente il numero di applicazioni utili che si possono creare. Resta pur sempre una gran quantità di cose che si possono fare, ma meno di quelle che desidererei. Ora che un abbonamento da 3€ a settimana mi consentirebbe di avere 2GB di traffico a settimana, vorrei tenere Messenger e Gtalk sempre attivi...non poterlo fare è un "deal breaker".

2) La tastiera su touchscreen funziona discretamente bene, sicuramente infinitamente meglio dei vari tentativi he ho provato su molti altri telefoni, ma non è al livello di una tastiera fisica. Va bene per scrivere un Url nel browser, o un SMS...ma scordatevi di scrivere un mini-documento Word o una mail di più di 2 righe...specie se non avete un'infinita pazienza, tempo...e se non siete perfettamente fermi! Si perchè se provate a scrivere mentre camminate o mentre siete in macchina (non alla guida...) con qualche vibrazione e scoprirete che centrare il tasto voluto si complica significativamente.

Per quella che è la mia esperienza, il BlackBerry Bold risolve in modo quasi brillante entrambe le problematiche. Partiamo dalla seconda: la sua tastiera fisica è ottima, probabilmente la migliore che abbia mai provato. E' sufficientemente ampia per essere usata comodamente, i tasti hanno un buon feedback e non mancano un colpo; inoltre si auto-retroillumina in condizioni di oscurità. Riguardo al primo punto, anche se è vero che neppure col BlackBerry un programmatore può fare tutto-tutto (non si possono ad esempio cancellare SMS in ingresso o spostarli, non si possono chiudere applicazioni o interagirci in qualche altro modo, la customizzazione di applicazioni di sistema è un po' limitata ecc.), la libertà che si ha è di un'ordine di grandezza superiore a quella dell'iPhone. E' un dato di fatto, non un'opinione!

A parte questo, anche le applicazioni di sistema del BlackBerry sono molto più complete: c'è un Address Book "serio" (con i gruppi), il copia e incolla (che non pensavo mi sarebbe stato così utile finchè non ho dovuto iniziare a rispondere a molti clienti con una risposta fissa contenente Url e altre informazioni), un registratore video, un gestore di password, un editor per Word, Excel e PowerPoint, e altre cosette ancora.

Tutto il sistema è velocissimo e passare da un'applicazione all'altra (o chiuderla) è cosa di un istante - anche l'iPhone è sufficientemente veloce, ma non a questi livelli...colpa non tanto forse della potenza reale, ma delle onnipresenti animazioni...belle, ma che ovviamente rubano un po' di tempo.

La batteria dura circa 2 giorni con un normale utilizzo (mezz'ora di telefonate al giorno, qualche SMS, connessione 3G sempre attiva, programmi in background come Messenger e Gtalk sempre attivi, e un po' di navigazione). Niente male, diciamo al pari dell'iPhone.

Il browser integrato mi ha lasciato così soddisfatto che non ho neanche provato ad installare alternative come Opea Mini. Certo, il browser dell'iPhone non ha paragoni, ma quello del Bold comunque ha sempre renderizzato correttamente tutti i siti che visito e i suoi 3 livelli di zoom consentono di navigare le pagine molto comodamente.

Un'altra cosa simpatica del BlackBerry (e della sua tastiera) è che offre un milione di scorciatoie alle operazioni più comuni. Ad esempio per rispondere ad un SMS o mail (anche nei programmi non di sistema ma che comunque aderiscono alle linee guida di RIM, come ad esempio il client GMail fatto su misura da Google) basta premere "R", per scrollare verticalmente una pagina (utile proprio nel browser) si preme la "space bar", per cancellare un elemento da una lista si preme "backspace" ecc. ecc.

Volendo trovarci dei difetti, devo dire che la qualità costruttiva generale è inferiore a quella del dispositivo di Apple, pur essendo comunque più che discreta. Ad esempio la cornice esterna non è di metallo ma di plastica, il coperchietto posteriore è di "plasticaccia" leggera, e a premere sullo schermo questo si abbassa di mezzo millimetro. Nell'iPhone il case esterno è assolutamente perfetto e super rigido. Un altro difetto, non del telefono in questione quando piuttosto della piattaforma BlackBerry, è che il software di terze parti costa molto di più (costo medio sui 10$) dei rispettivi per iPhone (costo medio sui 1-2$). Inoltre spesso il software è meno curato nell'aspetto, anche se magari può fare più cose.

In molti potrebbero preferire l'ampio display dell'iPhone a quello del Bold: è una critica ragionevole, ma ovviamente dipende dall'utilizzo che farete del telefono. Se volete qualcosa per telefonare e scrivere, e da usare solo di tanto in tanto come player video, il display del Bold è più che sufficiente - nonostante la dimensione più ridotta infatti la qualità è eccelsa: colori brillanti e risoluzioni uguale a quella dell'iPhone (480x320). Se cercate un device per vedere contenuti multimediali, e che quando serve vi contenta anche di telefonare, allora l'iPhone è quello che fa per voi.

In conclusione, per ora con il BlackBerry Bold + flat dati da 3€/settimana (senza il quale si perdono molti dei vantaggi e del gusto di avere un device di questo tipo!) sono soddisfattissimo: la tastiera mi consente di scrivere in scioltezza anche mail piuttosto lunghe, o di chattare con Messenger e Gtalk; la parte telefonica funziona semplicemente come ci si aspetterebbe, il browser fa bene il suo lavoro, e il display mi permette di vedere qualche episodio di una sitcom quando spendo una mezz'ora in treno.

Da notare infine che il nuovo BlackBerry Storm sembra essere un'ulteriore ottima alternativa all'iPhone): ampio display per contenuti video e navigazione su web, solo touch-screen, e applicazioni di terze parti che potenzialmente possono fare quasi tutto. La mancanza della tastiera è quasi una scelta di vita però.

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Business | Tecnologia
Azioni:   E-mail | Permalink | Commenti (13) | RSS CommentiRSS comment feed

Sviluppare per iPhone, BlackBerry, Symbian o Windows Mobile?

lunedì, 15 dicembre 2008 18.57 by Marco Bellinaso

Anche senza consultare molte ricerche di mercato (che pure esistono in gran quantità) è sotto gli occhi di tutti come il mercato di smartphone e PDA si stia evolvendo tantissimo e velocemente. Ormai non è difficile passeggiare per strada incrociando non solo manager e "gente del settore" (leggi geek) ma anche ragazzini che parlano non con un normale telefono, ma con un dispositivo fornito di ampio schermo touchscreen e con migliaia di colori brillanti, connettività bluetooth, wi-fi e UMTS/HSDPA (più veloce di quello che fino a pochi anni fa si aveva nel PC di casa!), GPS, fotocamera da 2-5 MPx, vari GB di spazio disponibile, CPU potenti, tastiera estesa per una comoda digitazione, sensori di movimento...e magari qualcos'altro ancora. E' altresì chiaro che con una configurazione hardware di questo livello le possibilità per gli sviluppatori non mancano, ed infatti ecco fiorire giochi a volte paragonabili a quelli delle console portatili, e programmi / utility di tutti i tipi. Ci sono ormai moltissime aziende che hanno fatto del mobile il loro unico business, sviluppando applicazioni per tutte le maggiori piattaforme esistenti, e raggiungendo a volte anche un gran successo.

Con il fatto che (1) il mercato del software per mobile è in grande espansione, (2) molte idee possono essere sviluppate senza grandi investimenti di tempo e denaro ma con prospettive di guadagni potenzialmente interessanti, (3) è comunque la possibilità di imparare qualche nuova tecnologia e/o linguaggio divertendosi molto di più che facendo l'ennesima applicazione gestionale desktop-based, è normale che molti siano guardando a questo settore con l'intenzione di buttarsi dentro, o perlomeno di iniziare a "bagnarsi il piede" (espressione americana...chissà se in italiano fa lo stesso effetto :)

Vorrei allora proporre una analisi molto semplice e veloce delle principali piattaforme e delle tecnologie di sviluppo ad esse collegate, con l'intenzione di chiarire almeno parzialmente le idee a chi non si sa decidere.

Apple iPhone

E' chiaramente il device del momento, quello più di moda e che molti vorrebbero. Recentemente il suo AppStore, il negozio di applicazioni consultabile tramite iTunes (e solo tramite quello...) ha raggiunto le 10.000 applicazioni (la maggior parte delle quali è gratis o costa 0,79€ o poco più).

Cosa serve per sviluppare:
* Un qualsiasi Mac Intel-based
* L'ambiente di sviluppo gratuito XCode (presente direttamente nel DVD di OSX)
* L'iPhone / iPod Touch SDK, scaricabile gratuitamente
* Le chiavi per firmare digitalmente per proprie applicazioni: 99$/anno

Conoscenze richieste:
Objective-C & Cocoa Touch. Objective-C è un C con così tante cose in più, e con così tante differenze, che alla fine resta "C" solo nella sintassi degli statement di base (if, for, while, switch ecc.). Definizione di interfacce, classi, UI ecc. si fa tutto con una sintassi e degli strumenti di sviluppo che sicuramente risulteranno nuovi e anche piuttosto strani a tutti coloro non ancora abituati alla programmazione per Mac. Viceversa, chi già è in grado di programmare applicazioni desktop per OSX si sentirà piuttosto a suo agio: stesso strumento per creare le interfacce utente (Interface Builder), stesso linguaggio (anche se mancante di alcune novità dell'ultima versione, come la gestione automatica della memoria), e framework simile (Cocoa Touch, un sottoinsieme di Cocoa).

Ovviamente per chi viene da altri mondi (C#/VB.NET su Windows, o magari Java) l'impresa non è certo impossibile, ma solo un po' più ardua rispetto ad altre piattaforme. Recentemente sono usciti dei libri, tra i quali consiglio Beginning iPhone Development che possono davvero fare la differenza. Se partite da zero in questo ambiente, investite sicuramente nel libro se non volete perdere giorni cercando di capire come funziona questo mondo. Una volta iniziato poi sarà invece sicuramente più facile approfondire i dettagli dalla documentazione online.

Pro:
* Lo stesso programma può funzionare su iPhone e iPod Touch (a patto ovviamente che non usi la fotocamera o le funzioni telefoniche, non presenti nell'iPod), garantendo un grandissimo mercato.

* AppStore è l'unico store ufficiale dove pubblicare le proprie applicazioni, ed è perfettamente integrato sia con l'iPhone sia con iTunes => buona visibilità e ottime probabilità di essere trovati se l'utente cerca le keyword giuste

* Buon framework per creare con semplicità animazioni ed effetti grafici particolari.

* Presenza del DB engine Sqlite, e di una versione ridotta di OpenGL, oltre a tutta una serie di componenti e classi per creare belle interfacce utente, gestire l'interazione con l'utente, manipolare dati ecc. (le solite cose che ci si aspetta insomma, ma con parecchie cose in più sul lato della UI)

* Uniformità dei dispositivi: si sviluppa una volta sola, sapendo che tutti i propri utenti avranno dei device praticamente identici (stessa risoluzione, stessa potenza, stessa risoluzione della fotocamera ecc.). In realtà si può differenziare tra iPhone 2G e 3G (nel 2G manca il GPS) o tra iPhone e iPod Touch, ma comunque questo è nulla rispetto a quello a cui sono abituati gli sviluppatori in altre piattaforme!

Contro:
* Gli strumenti di sviluppo sono gratis, ma bisogna per forza avere un Mac per sviluppare.

* 99$/anno per avere la possibilità di stare nello store di Apple - non pochissimo per chi inizia, e soprattutto non poco per chi intende sviluppare applicazioni free!

* E' necessario pagare la licenza (leggi: le chiavi) anche per applicazioni custom per uno specifico cliente. Anzi in quel caso bisogna spendere 299$ per la licenza Enterprise.

* La documentazione e il supporto (sotto forma di forum, chat ecc.) sono ancora limitati rispetto ad altre piattaforme di sviluppo.

* Apple trattiene il 30% dalle vendite come commissione. E' una percentuale che "ci sta" in generale, ma la cosa negativa è che non c'è alternativa, ovvero oltre a pubblicare la mia applicazione sullo store non posso *anche* pubblicarla per conto mio e farmi pagare su PayPal, così da risparmiare sulle commissioni. (sto ovviamente trascurando la possibilità di scrivere applicazioni per device craccati - in quel caso c'è un mercato del tutto diverso, e una serie di riflessioni che non affronterò in questo post)

* Il costo medio delle applicazioni è attorno ad 1$...di conseguenza bisogna vendere veramente molto per guadagnarci qualcosa.

* Sebbene il sistema operativo di iPhone contenta di fare un sacco di cose, di fatto poi le API pubbliche consentono di fare molto ma molto meno: scordatevi di fare applicazioni che girano in background, applicazioni che intercettano eventi di sistema (chiamata / sms in arrivo), inviano SMS o mail, interagiscono con applicazioni di sistema quali il calendario, e che in generale accedono al device a basso livello. Le API per tutto ciò ovviamente esistono e Apple le usa per i propri applicativi, ma sono classificate come "private", non sono documentate, e se le usate Apple non vi consentirà di pubblicare il vostro programma nel suo store, relegandovi di fatto al mondo dei dispositivi craccati.

* Oltre ai limiti appena citati, c'è anche il fatto molto antipatico che Apple potrebbe rifiutare per una serie di motivi la vostra applicazione: non seguite qualche standard sull'interfaccia utente, avete fatto un'applicazione che fa qualcosa di simile ad un'applicazione di sistema (anche se magari lo fa molto meglio) esistente (o futura...), la vostra applicazione non rispetta certi standard prestazionali ecc. ecc. E' veramente troppo facile vedere la propria applicazione respinta...magari anche per più volte, e per motivi che spesso fanno imbestialire gli sviluppatori (che dopo aver speso settimane di lavoro vorrebbero vedere la propria creazione online il più presto possibile). Insomma la situazione è questa: iPhone è un sistema piuttosto chiuso, molto limitato riguardo a quello che vi permette di fare, e i programmatori sono in balia dei gusti di Apple.

In conclusione, le possibilità sono molto interessanti, ma potrebbero esserlo anche infinitamente di più se solo Apple cambiasse un po' politica e si aprisse di più. Attualmente ritengo che a meno che non abbiate veramente l'idea semplice ma geniale che vi faccia vendere centinaia di migliaia di copie, il motivo per buttarsi su iPhone sia piuttosto quello di farsi della buona esperienza su questa piattaforma e poi vendersi come consulenti: di lavoro sembra essercene parecchio, mi dicono amici da quel fronte ;)

Symbian devices (Nokia e altri)

I device con Symbian sono senz'altro meno "emozionanti" di iPhone (che per molti versi è stato una piccola rivoluzione), ma sono solidi, ben collaudati e diffusissimi. Sembrerebbero quindi un buon mercato dove indirizzarsi ma...a quanto pare se n'è già accorto da tempo un sacco di gente e attualmente ci sono quantità industriali di software per qualsiasi categoria. Trovare un'idea non ancora realizzata sembra una vera impresa. Se comunque questo non vi spaventa, continuate a leggere.

Cosa serve per sviluppare:
* Va bene praticamente qualsiasi PC con Windows, Linux o un Mac con OSX.
* Un IDE/compilatore Java (tipicamente Eclipse se volete restare nel free) o C++ (il vecchio Visual C++, il nuovo Visual Studio con C++, o il quotato CodeWarrior C++) (www.metrowerks.com)

Conoscenze richieste:
C++ per "applicazioni native", oppure J2ME (mobile edition) per applicazioni che girano dentro il runtime Java-based. Le applicazioni Java sono tipicamente più lente (niente giochi 3D spettacolari) e limitate (niente accesso a basso livello, niente funzioni avanzate quali intercettazioni di eventi di sistema ecc.), ma comunque è la scelta più produttiva e semplice per un gran numero di applicazioni che non richiedono cose molto particolari. C++ per contro permette di fare di tutto (ma proprio di tutto) sul Symbian, personalizzando qualsiasi aspetto...ma svilupparci sembra essere parecchio impegnativo, anche per chi già conosce il C++.

Sviluppare in Java ha anche il vantaggio che l'applicazione potrà poi essere portata anche su altre piattaforme con sforzi spesso molto ridotti, a volte addirittura assenti. Per un confronto tra le due opzioni fate riferimento a questo whitepaper. Per chi viene dal mondo .NET, imparare J2ME è una questione di pochi giorni. Chi invece già conosce Java deve sono vedersi le poche classi per creare l'interfaccia utente. In generale è un compito tranquillamente alla portata di chiunque abbia già delle buone basi di programmazione object oriented moderna.

Pro:
* Enorme diffusione della piattaforma.

* Facilità di sviluppo con Java.

* Portabilità della applicazioni sviluppate con Java.

* Costi di sviluppo molto ridotti o assenti.

* Libertà di scelta di vari canali di distribuzione (sul proprio sito, su store di terze parti ecc.).

* Il supporto per il mondo Java (sotto forma di forum, libri, corsi) di sicuro non manca.

Contro:
* Mercato già affollatissimo.

* Non c'è uno store centralizzato, bisogna registrarsi su vari store, ognuno con le proprie regole, le proprie commissioni, le proprie dati per l'invio dei compensi ecc.

* Esistono centinaia di diverse configurazioni hardware di cui tenere conto, e questo può facilmente diventare un inferno per lo sviluppatore che deve testare il software in infiniti simulatori, differenziare parti di codice, scrivere istruzioni dettagliate per modelli diversi, compilare una lista di compatibilità ecc.

In generale Symbian è una scelta con la quale difficilmente l'investimento di tempo andrà sprecato, non fosse altro che comunque Java è praticamente onnipresente. E' però un po' difficile creare applicazioni innovative data la ricchezza di software esistente.

BlackBerry

I BlackBerry prodotti da RIM (Research In Motion) sono dispositivi relativamente nuovi nel mercato italiano, ma già da molti anni popolarissimi negli USA, dove tra alti e bassi RIM è tra le prime 3 aziende del settore. Storicamente associati esclusivamente al mercato business (manager e impiegati che hanno bisogno di essere sempre collegati alla mail aziendale), gli ultimi modelli (Bold e Storm) sono di sicuro interesse anche per la massa degli utenti consumer, attenti alle funzioni multimediali, all'estetica, alla ricchezza di applicazioni.

Cosa serve per sviluppare:
* Va bene praticamente qualsiasi PC con Windows, Linux o un Mac con OSX.
* Eclipse + un plug-in di RIM; oppure il JDE, un ambiente derivato da Eclipse fatto su misura per lo sviluppo con BlackBerry. Se si inizia da zero con Java consiglio la seconda opzione, dato che richiede una più semplice installazione e configurazione.
* Un set di chiavi per firmare digitalmente le proprie applicazioni. Si comprano tramite il sito di RIM, e costano solo 20$, una-tantum.

Conoscenze richieste:
J2ME, come per Symbian. Ovviamente oltre alle classi generiche di J2ME RIM ha aggiunto tutta una serie di classi specilizzate per accedere alle funzionalità e caratteristiche peculiari del proprio sistema operativo e dei propri dispositivi, ma tipicamente si tratta solo di classe che ereditano da una classe J2ME base e la estendono con nuove proprietà (ad esempio BlackBerryContact the deriva da Contact). Come detto sopra per Symbian, provedendo dal mondo .NET la strada sarà perlomeno in pianura: pochi giorni dovrebbero bastare per leggersi le parti fondamentali della documentazione (disponibile a partire da qui), a guardarsi la vasta schiera di esempi installati assieme al JDE, e per cominciare a fare le prime prove concrete.

Pro:
* Semplicità di sviluppo.

* Non ci sono libri dedicati ma la documentazione ufficiale è piuttosto completa, gli esempi ufficiali coprano praticamente tutto, e il forum di supporto per sviluppatori è molto frequentato e vivo (una risposta arriva di solito in qualche ora).

* Il mercato potenziale è enorme, ma rispetto ad altre piattaforme esistono ancora pochi software => c'è più spazio per le proprie idee.

* Il prezzo medio delle applicazioni commerciali è piuttosto elevato (sui 15$), quindi con un'idea discreta ci si ripaga il tempo speso e ci si guadagna qualcosa in breve tempo.

* Esistono decine di device con caratteristiche diverse...ma almeno sono tutti di RIM, quindi è più facile tenerli sotto controllo e gestire una lista di compatibilità.

* RIM fornisce i simulatori di tutti i device, in modo da semplificare di molto il test delle proprie applicazioni.

* Tra le classi di J2ME e le estensioni di RIM è possibile interagire con il sistema operativo e le applicazioni di sistema in modo piuttosto completo: si possono intercettare molti eventi di sistema, scrivere delle applicazioni che girano in background e partono all'avvio, mandare SMS e mail, accedere al GPS, utilizzare connessioni verso indirizzi remoti, accedere ai dati del calendario e della rubrica, disegnare interfacce personalizzate, gestire suoni e video ecc.

* RIM ha annunciato che nel 2009 pubblicherà un suo store ufficiale, il che dovrebbe aiutare ancora di più le vendite di applicazioni di terze parti.

Contro:
* SDK parzialmente limitato per alcuni aspetti: non è ad esempio possibile cancellare SMS, intercettare degli eventi particolari, cambiare alcune impostazioni di sistema (profilo attivo, audio, immagine di sfondo della schermata principale) o cambiare il comportamento di alcune applicazioni di sistema.

* I file prodotti dalla compilazione (.JAR e .COD) non possono superare una certa dimensione massima. Ad esempio un file di 8MB (dimensione raggiunta includendo al suo interno molti file di testo, immagini ecc.) non verrà installato nel telefono.

* Non è presente un DB Engine installato di default. SQL Anywhere 11 di Sybase include UltraLite J per BlackBerry, un motore di database relazione che può andar bene in molte situazioni, ma è comunque un software da installare separatamente, e ha le sue limitazioni (soprattutto sul numero di oggetti gestibili)

In generale, vista l'ottima diffusione attuale del BlackBerry negli USA e la potenziale ottima diffusione futura globale, questa è una piattaforma sulla quale può aver molto senso investire. Tra l'altro, se si cambiasse idea e si volesse passare al mondo Symbian, buona parte delle conoscenze acquisite continuerebbero ad essere utilizzate.

Windows Mobile devices (HTC, Samsung, HP, Palm e altri)

Molti dei discorsi fatti per Symbian valgono anche per WM. Ci sono in commercio tantissimi dispositivi diversi, di produttori diversi, per qualsiasi tasca ed esigenza. WM è un sistema operativo piuttosto stabile e dalle mille possibilità, anche se purtroppo seriamente (e forse irrimediabilmente) compromesso da un'interfaccia grafica antiquata, scomoda...e brutta.

Cosa serve per sviluppare:
* Un PC con Visual Studio 2005/2008 Standard o Professional. Le versioni Express (gratuite) purtroppo non includono il supporto per lo sviluppo mobile.

Conoscenze richieste:
C#/VB.NET (anche C++ in realtà, ma ormai con C#/VB.NET si fa praticamente tutto...ad eccezione forse di videogame complessi) e il .NET Compact Framework. Se sviluppate già per Windows con Visual Studio, in pratica sapete già tutto e oltre quello che serve (si fa per dire, in realtà bisogna ovviamente studiarsi gli approcci, pattern e guideline specifiche delle applicazioni per mobile). Anche venendo dal mondo Java l'esperienza non dovrebbe essere traumatica. A semplificare di molto le cose c'è il fatto che Visual Studio è il più avanzato IDE al mondo, con potenti strumenti di design visuale delle interfacce grafiche, un editor di codice e un debugger eccellenti, e tutta una serie di strumenti di contorno che semplificano di molto la vita. Purtroppo a pagamento però.

Pro:
* Semplicità di sviluppo.

* Visual Studio è il miglior IDE che si possa desiderare, e la facilità di sviluppo ne beneficia ulteriormente.

* Ricca disponibilità di libri, tutorial, screencast, esempi e documentazione di vario tipo. Come per lo sviluppo in altri ambiti, Microsoft si distingue positivamente in questa categoria.

* Disponibilità di SQL Server Mobile Edition per la gestione di complessi database relazionali direttamente sul device (con la possibilità di sincronizzarsi con SQL Server)

* Libertà di scelta di vari canali di distribuzione (sul proprio sito, su store di terze parti ecc.)

* Ampia libertà di sviluppo: l'SDK permette di fare praticamente di tutto. Dove non sia possibile fare qualcosa con il .NET Compact Framework, è di solito possibile farlo con C++ a più basso livello.

* Nessuna approvazione e/o firma da organizzazione esterne è necessaria per il deployment dei propri applicativi custom.

* Grande disponibilità di componenti commerciali (es: griglie avanzate o controlli per realizzare grafici) già pronti all'uso.

Contro:
* Mercato già piuttosto saturo, è difficile creare applicazioni particolarmente originali.

* Non esiste uno store centralizzato per la vendita => Meno visibilità, meno facile essere trovati.

* Creare un'interfaccia utente accettabile per i propri programmi significa sostanzialmente crearsela da zero. Del resto così facendo si perde l'uniformità con il resto delle applicazioni - per quanto brutta la UI, di solito una qualche uniformità è utile.

In conclusione WM può essere una buona piattaforma per sviluppare in libertà applicazioni di vario tipo, anche se creare qualcosa di "fuori dal coro" richiede uno sforzo ulteriore rispetto a quello che si potrebbe pensare.

Conclusioni generali

iPhone ha un hardware molto interessante, è di moda e con un buon mercato; ma è molto limitato per le applicazioni di terze parti, e la politica di Apple è difficilmente apprezzabile dagli sviluppatori.

Symbian è diffusissimo, molto flessibile e potente. Il test e il deployment può però diventare molto problematico dato l'elevato numero di dispositivi in commercio da vari produttori. Il mercato è già molto affollato.

Il BlackBerry è in espansione, svilupparci sopra costa praticamente zero ed è semplice. C'è meno competizione rispetto alle altre piattaforme. L'SDK e l'OS stesso però a volte risulta limitato, e non ci sono molte sorgenti di informazioni e supporto oltre a quelle ufficiali (comunque molto buone)

Windows Mobile e Symbian hanno più o meno gli stessi pro e contro - l'uno o l'altro è quasi una scelta di vita!

Nella propria scelta c'è un fattore al quale io personalmente ho dato una grandissima importanza: cosa conosco già? Io ho deciso che se dovevo sviluppare delle utility nel mio tempo libero (almeno per ora), doveva essere abbastanza stimolante e divertente. Lavorare con gli stessi linguaggi, framework e IDE con i quali lavoro tutto il giorno non mi avrebbe dato questi stimoli. Ho deciso che imparare un minimo di Java e di Objective-C mi avrebbe fatto solo bene. Viceversa qualcuno potrebbe voler fare lo sforzo minimo e usare quello che già conosce: anche questa è ovviamente una scelta rispettabilissima...alla fine l'importante è iniziare con qualcosa...se poi piace e si vuole guardare verso altri orizzonti...

Correntemente valutato 5.0 da 9 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , , ,
Categorie:   Business | Sviluppo software | Tecnologia
Azioni:   E-mail | Permalink | Commenti (9) | RSS CommentiRSS comment feed

Backup remoto con Mozy

lunedì, 15 dicembre 2008 08.58 by Marco Bellinaso

Ultimamente, lavorando spesso a casa su progetti sia personali che per clienti, mi è cominciata a venire "l'ansia da backup". In realtà è una sensazione già provata parecchie volte, dopo che l'altr'anno mi era saltato un disco pieno di roba. Fortunatamente già da vari anni uso una qualche forma di software di backup che regolarmente copia tutti i dati importanti su un disco esterno quasi esclusivamente dedicato a quello scopo; quindi praticamente nessuna perdita seria in quell'occasione.

La preoccupazione è in realtà generata dal pensiero che se parto per le vacanze e qualcuno mi entra in casa rubando PC e disco esterno, ho perso anche il backup. Idem se scoppia un piccolo incendio o se un vaso di fiori pieno d'acqua mi si rovescia sulla scrivania inondando tutto. Certo, basterebbe anche fare il backup su un NAS opportunamente nascosto e collocato separatamente rispetto al PC. E se però il backup mi servisse mentre sono in viaggio di lavoro, magari per una o due settimane? Non mi posso certo portare dietro il disco esterno, avrei sempre il problema furto/smarrimento, oltre all'ovvio problema di ingombro / peso / scomodità. Beh ma mi potrei portare dietro una copia su DVD, no? No perchè non ho voglia di sprecare n DVD, e soprattutto non ho voglia di star li a far scrivere i DVD ogni volta. Configurare il NAS in modo che sia visibile dall'esterno? Mmm, già è una configurazione di troppo per i miei gusti (devo avere un IP statico, e se non ho un IP statico devo usare qualcosa come DynDns.org), e comunque richiede di tenere in casa una connessione costantemente attiva.

E allora? Allora ho cominciato a pensare all'opportunità di fare dei backup online, tramite dei servizi dedicati. Dopo un po' di ricerche tramite il fido Google e dopo aver letto decine di recensioni entusiastiche, anche per me la scelta è caduta su Mozy. Il piano base da 4.95$ al mese (3.75€ al cambio attuale) consente di archiviare dati illimitati! Niente male, considerando che non è affatto difficile spendere più di 45€ all'anno comprando software di archiviazione, DVD vergini e HD esterni...

Ma le cose sono anche migliori, perchè se dovete archiviare meno di 2GB di dati, Mozy è totalmente free. Certo non salverete la vostra collezione di musica e film, ma probabilmente in 2GB i documenti e i progetti di lavoro (parecchio codice, nel mio caso) ci potrebbero tranquillamente stare. Questa è pertanto l'opzione che sto usando al momento - nel caso dovessi aver bisogno di ulteriore spazio, l'upgrade è comunque immediato da effettuare.

A parte la versione Home da 4.95$ per spazio illimitato, ci sono anche le versioni Pro ed Enterprise che permettono di fare il backup di file server, SQL ed Exchange, oltre a poter girare sulle versioni server di Windows e OSX. Si veda questa pagina per un confronto. Per "l'utente normale" (e qui includo anche il professionista che lavora senza un'infrastruttura fantascientifica) la versione Home è comunque sufficiente nel 99% dei casi.

Una volta iscritti e scaricato il software Mozy Client, lo si configura scegliendo le cartelle da backuppare, e impostando la schedulazione preferita (quando il computer non sta facendo nulla, ad una certa ora del giorno, in una certa data, ecc.). In pratica si trova gran parte di quello che c'è in un software di backup "classico". Il backup effettuato è incrementale, funziona anche con i file correntemente aperti, e supporta il versioning, il che risulta perfetto per chi modifica spesso i propri documenti (es: i sorgenti di un programma in fase di sviluppo) e vuole tornare alla versione di una data specifica. Certo non sostituisce software di versioning come SVN o TFS, ma è già qualcosa di molto utile.
Oltre che tramite l'applicazione dedicata di configurazione, è possibile aggiungere un folder al backup tramite una nuova voce aggiunta al menu contestuale di Windows Explorer (Gestione Risorse) in fase di installazione. Davvero comodissimo.

Per quanto riguarda la sicurezza, tutte le comunicazioni client-server sono cifrate tramite SSL. I dati sul server di Mozy sono poi cifrati tramite una chiave a 448bit! La chiave può essere quella di default di Mozy, oppure una scelta dall'utente. La prima opzione è consigliata per utenti senza troppi segreti da proteggere, e che non vogliono o non sanno crearsi una propria chiave; la seconda opzione dovrebbe comunque permettere anche ai più ansiosi di dormire sonni tranquilli.

Infine, per il restore dei dati ci sono almeno tre scelte:
1) Si fa tutto tramite l'applicazione desktop
2) Da Windows Explorer si può accedere al proprio spazio remoto sul server di Mozy tramite un hard disk virtuale chiamato MozyHome Remote Backup, che si comporta come un disco locale!
3) Si va sul sito di Mozy e dalle pagine private del proprio account sfogliare il materiale salvato online e scegliere cosa si vuole scaricarsi. Dopo aver confermato la selezione Mozy si mette al lavoro zippando il materiale scelto, e informa l'utente via mail quando questo è pronto. All'arrivo della mail l'utente può quindi scaricarsi lo ZIP auto-estraente in locale; questa soluzione può rivelarsi davvero eccellente nel caso si voglia scaricarsi qualcosa (magari non tutto il backup, ma solo qualche documento specifico) mentre si è da un cliente, in vacanza o comunque in qualche luogo senza il proprio PC e soprattutto senza una copia locale dei dati con i quali si lavora da casa.

Ancora non vi basta per convincervi a provarlo?

Correntemente valutato 4.5 da 4 utenti

  • Currently 4,5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:  
Categorie:   Business | Mac OS X | Sviluppo software | Windows
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Applicazioni mobile, traffico dati e web service

lunedì, 8 settembre 2008 09.00 by Marco Bellinaso

Nella mia recensione dell'iPhone dicevo che finalmente è davvero possibile avere Internet in tasca, grazie alle ottime capacità di Safari Mobile e grazie alla facilità di interazione offerta dalla UI e dallo schermo multitouch del device. Questo vuol forse dire che le informazioni che ci servono (per lavoro, per svago ecc.) possono essere sempre ricercate e consultate tramite i siti web esistenti, piuttosto che tramite applicazioni native ad-hoc? La risposta è: certamente no.

Il motivo è semplice: una pagina web pesa tranquillamente 500 KB (o anche molto di più, se siamo un po' sfortunati) tra html + css + immagini, ma le informazioni testuali che effettivamente ci servono saranno probabilmente pochi KB; se il problema fosse solo il maggiore tempo di attesa prima che i contenuti vengano scaricati basterebbe essere più pazienti, ma c'è ovviamente dell'altro. Il vero problema è che - in Italia ma in parecchi altri Paesi - non c'è una connessione flat per il traffico dati sui device mobili, ma si paga a traffico effettuato, eventualmente con dei pacchetti prepagati a tariffa "conveniente" (relativamente alle tariffe normali, altrimenti di conveniente ci sarebbe ben poco...). Ad esempio il Vodafone Pack prevede un traffico di 150 500 MB settimanali al costo fisso di 3€. Un traffico di questa entità è sufficiente per controllare la posta tramite i client integrati, e per visitare sporadicamente qualche sito web piuttosto leggere. Se però bisogna frequentemente consultare un paio di pagine da 500 KB di un certo sito, per ricavare poche informazioni relative ma disperse in più pagine, è chiaro che a 1 MB al colpo si stà presto a consumare una fetta troppo grossa del traffico disponibile.

Ecco dunque il senso di una applicazione nativa: questa si dovrebbe scaricare - tramite un web service o qualcosa di simile - solo i dati "grezzi" necessari, e poi formattarli, manipolarli e visualizzarli localmente. Ho provato a scrivere un web service classico (in ASP.NET...tecnologie MS forever dove possibile ;) che restituisse solo i dati: 45 KB di testo. 1/22 del traffico richiesto dalla navigazione via web per ottenere gli stessi dati...non male come risparmio no? Certo c'è da mettersi lì ed investire tempo a sviluppare una applicazione nativa custom, il che può non essere semplice, ma probabilmente l'applicazione potrà essere molto apprezzata da chi ha spesso bisogno di quelle info ma non vuole consumarsi tutto il suo traffico settimanale. Chissà, magari per un risparmio del genere sui costi di connessioni potrebbe essere pure disposto a pagare qualcosa per ringraziarvi del lavoro...

45K è un valore accettabile, ma pensandoci un po' si può fare di meglio. In quei 45K ci sono anche tutti i tag XML della risposta, dato che si tratta di un web service. XML/SOAP sono lo standard per un web service multipiattaforma, interoperabile e facilmente interpretabile...ma tutto ciò ci serve nel caso di una applicazione mobile che usa assolutamente in esclusiva quel servizio? No, non serve. In un caso del genere va benissimo un HttpHandler che si prende i parametri in querystring, e restituisce del plain text dove tutte i dati di risposta sono accodati in un ordine conosciuto e sono separati da un carattere particolare specifico. Come si faceva una volta ai tempi di ASP insomma. Il servizio di test che ho sviluppato con questo approccio produce delle risposte medie di 15K. 1/3 del traffico richiesto dal WS, e 1/66 del traffico richiesto dalla navigazione di 2 pagine web. Un risparmio che difficilmente non si può apprezzare. Come al solito quindi ogni soluzione o tecnologia va contestualizzata alla specifica situazione e necessità.

Correntemente valutato 4.0 da 5 utenti

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Business | Mac OS X | Sviluppo software
Azioni:   E-mail | Permalink | Commenti (2) | RSS CommentiRSS comment feed