Usare o non usare un Framework?

Stasera ho avuto una interessante conversazione con un amico sull’opportunità o meno di utilizzare un framework di sviluppo (o una o più librerie, come ad esempio JQuery e Bootstrap di Twitter) per la realizzazione di applicazioni.
Da questa semplice premessa è iniziato uno “scontro tra titani”: da una parte il mio amico, che difende la modalità di sviluppo completamente “da zero”, realizzando da zero tutte le funzionalità necessarie per lo sviluppo dell’applicazione (comprese le funzionalità ancillari, come un DatePicker JavaScript ed un framework di validazione dell’input utente JavaScript, ad esempio), dall’altra c’ero io che ovviamente difendevo la modalità di sviluppo che prevede l’utilizzo di framework o librerie di terze parti.
Chi difende la modalità di sviluppo “da zero” porta a sostegno della propria tesi alcune motivazioni come:
  • Estrema personalizzazione: il software fa esattamente quello per cui è stato progettato, massimizzando le performances;
  • Leggerezza: essendo il codice sviluppato estremamente minimale ed estremamente personalizzato, non c’è nemmeno “un byte” di troppo rispetto a quanto necessario;
  • Controllo: si è assolutamente certi di cosa il codice sorgente faccia, senza doverlo controllare e verificare;
  • Conoscenza: risolvendo in proprio ogni problema, si aumenta la propria “conoscenza di base”, entrando nel merito ed analizzando ogni singolo piccolo problema che si può presentare;

Dall’altra parte, ovviamente, chi difende la modalità di sviluppo basata su software di terze parti, porta altre motivazioni:

  • Rapidità di sviluppo: utilizzando framework o librerie già pronte, si accorciano notevolmente i tempi di sviluppo (cosa che rende intrinsecamente più competitivi, potendo offrire al cliente dei tempi di sviluppo minori e conseguentemente minori costi di sviluppo);
  • Riusabilità: un proprio snippet di codice sviluppato utilizzando un framework standard può essere facilmente riutilizzato in un altro progetto, senza alcun o con pochissime modifiche;
  • Evitare di perdere tempo “reinventando la ruota”: non si perde tempo a risolvere per ogni progetto una problematica già affrontata e risolta da tempo, magari da decine di sviluppatori, arrivando ad una soluzione largamente accettata e condivisa, che ormai può essere data quasi per “scontata”;
  • Aderenza agli standard: l’uso di framework e librerie ampiamente diffusi rende facilmente condivisibile e manutenibile anche da persone terze il proprio codice sorgente, per la standardizzazione della sintassi e la necessaria adozione delle best practices che con il tempo di sono venute a creare;
  • Accrescimento personale: imparando a sviluppare con framework diffusi comporta implicitamente un accrescimento personale ed una “maggiore rivendibilità” dello sviluppatore sul mercato del lavoro;
  • Concentrarsi sul reale obiettivo del progetto: non dovendo investire parte del proprio tempo a risolvere problemi ancillari, si può massimizzare i propri sforzi sull’analisi delle problematiche per la quale l’applicazione è in fase di sviluppo, magari investendo parte del tempo nella ricerca di qualche algoritmo particolarmente efficiente o innovativo per la problematica in oggetto;

E voi, cosa ne pensate?
Sviluppate tutto “da zero”, oppure preferite appoggiarvi a framework e librerie già pronti? Fatemi la vostra opinione.

Installare Android ICS su Samsung Galaxy Tab 7 (P1000)

Finalmente la Cyanogen 9 è entrata in versione stabile e, per tutti i possessori di un Samsung Galaxy Tab 7 (serie P1000 e successive) questa rappresenta una ottima notizia, dato che così potremo finalmente fare un upgrade significativo del nostro amato tablet, fin troppo presto dimenticato da Samsung senza correre troppi rischi.
Complice quindi la mia prima giornata di ferie (ebbene sì, anche io vado in ferie!) ho deciso di lanciarmi nell’upgrade…
Prima di cominciare, vi ricordo comunque che:
  • Flashare il proprio firmware originale comportare l’invalidazione della garanzia del produttore
  • Flashare il proprio firmware originale può comportare la perdita di file (fatevi quindi prima un bel backup dei vostri dati importanti)
  • Non mi assumo alcun responsabilità in merito a danni arrecati ai device, esegui la procedura riportata sotto la tua responsabilità e a tuo rischio e pericolo
Per poter fare l’upgrade del nostro Galaxy Tab 7, sono necessarie alcuni componenti che, per comodità, vi riporto qui di seguito:
Vi consiglio spassionatamente di mettere tutti i file in una stessa cartella, in modo da averli facilmente a disposizione durante la procedura.
  1. Estrarre l’archivio GB_Stock_Safe_v5 e avviamo Odin3_v1.7 dalla relativa sottocartella (vi consiglio di eseguirlo come amministratore, se state utilizzando Windows 7)
  2. Cliccare su PIT e selezionare il file gt-p1000_mr.pit
  3. Cliccare su PDA e selezionare il file GB_Stock_Safe_v5.tar
  4. Cliccare su PHONE e selezionare il file modern.bin contenuto nella sottocartella JMF Modem
  5. Spegnete il tablet, se già non lo avete fatto
  6. Collegate il tablet al computer tramite il cavo USB
  7. Accendete il tablet in modalità Download premendo da spento il tasto Volume giù + Power
  8. Una volta che il tablet viene identificato da Odin (identificherà il tablet come una periferica COM), verificate che le opzioni Re-Partition, Auto Reboot e F. Reset Time siano tutte selezionate e premete il pulsante Start
  9. Aspettate pazientemente che Odin abbia terminato le sue operazioni e che il tablet si riavvii da solo
  10. Chiudete e riaprite Odin
  11. Spegnete il tablet e riavviatelo sempre il modalità Download (premendo i tasti Volume giù + Power)
  12. Cliccare su PDA e selezionare il file Overcome Kernel 4.0
  13. Senza toccare null’altro, premete Start
  14. Aspettate che Odin abbia terminato le sue operazioni e che il tablet si riavvii da solo
  15. Una volta che il tablet si è riavviato, copiate al suo interno (va benissimo nella root della memoria interna, ad esempio) i file Overcome 7 Serie 4.1.0, la CyanogenMod 9 e le Google Apps
  16. Ora scollegate il tablet dal computer e spegnetelo
    ATTENZIONE: questo passaggio è importante!!! In un primo mio esperimento, non l’ho scollegato ed il tablet continuava a riavviarsi dopo il prossimo flash
  17. Accendete il tablet in modalità Recovery premendo da spento il tasto Volume su + Power
  18. Spostatevi nel menu di installazione (tipicamente install from SD, ma il nome potrebbe essere leggermente diverso)
  19. Cercate all’interno della vostra SD (muovendovi con il tasti Volume su e Volume giù e confermando con il tasto Power o “lente“) la ROM Overcome 7 Serie 4.1.0 e confermatene l’installazione
  20. Premete il tasto Back fino al menu principale e poi selezionate l’opzione di riavvio (tipicamente Reboot Now, ma anche qui il nome potrebbe essere leggermente diverso)
  21. Attendente l’accensione del sistema, poi spegnetelo
  22. Accendete il tablet sempre in modalità Recovery (quindi Volume su + Power) ed eseguite nell’ordine: Wipe User data, Wipe Cache, Wipe Dalvik Cache
  23. Tornate ora con il tasto Back al menu principale, selezionate Install from SD ed effettuate il flash della ROM CyanogenMod 9
  24. Dopo il flash della CyanogenMod 9, sempre selezionando Install from SD eseguite il flash delle Google Apps
  25. Tornate ora con il taso Back al menu principale e selezionate Reboot Now
Se tutto è andato per il verso giuto, avete appena aggiornato il vostro “Mister T” (dove “T” ovviamente sta per “Tablet” 🙂 alla nuova Android 4.0.4. Qui di seguito vi riporto un paio di screenshot presi dal mio tablet.
Le prime impressioni dopo un paio d’ore di utilizzo sono ottime: il sistema è estremamente stabile e reattivo, sembra di aver acquistato un nuovo tablet: ottimi gli effetti grafici di transizione (comunque  disattivabili), anche se mi riservo di valutarne l’impatto sulla durata complessiva della batteria.
Il team Cyanogen ha a fatto davvero un ottimo lavoro con il supporto hardware: funziona tutto alla perfezione, sia la fotocamera sul retro che la fotocamera frontale, la rete Wifi, la rete GSM, la connessione dati in mobilità ed il supporto per le telefonate.
Insomma, se come me vi siete stancati di aspettare che Samsung torni sui suoi passi e decida di offrire l’upgrade ad ICS anche per questo tablet e volete regalare al vostro “bimbo” una nuova giovinezza, l’upgrade con la CyanogenMod è obbligatorio!

Codemunity: un nuovo social network per sviluppatori

Rieccomi qui: sono passati parecchi mesi dal mio ultimo post in questo blog, ma purtroppo la vita spesso ti travolge senza che tu te ne accorga… e ti ritrovi in meno di un attimo a dover trascurare molte attività personali per far fronte ad impegni impellenti. D’ora in poi conto di riuscire a postare con la regolarità alla quale vi avevo abituato…
Ma veniamo all’oggetto di questo post: da pochi giorni è nata Codemunity, un nuovo social network per sviluppatori, creato dall’amico Matteo Capucci (lo trovate su Twitter a @mattecapu, oltre all’account ufficiale della comunità @codemunity).
In Codecomunity i programmatori potranno scambiarsi tra di loro impressioni, idee, snippet di codice con persone che coltivano la nostra stessa passione, il tutto in un ambiente dall’interfaccia semplice, lineare ed essenziale, del tutto congeniale a noi sviluppatori. 🙂

Insomma, se siete programmatori (per passione, per lavoro o per entrambi i motivi), dovete dare a Codecomunity una possiblità iscrivendovi e partecipando alla nostra piccola comunità in crescita.
Vi aspettiamo 🙂