UPDATE – Limiti Neopantentati App Downloads
L’applicazione ha raggiunto i 75 downloads in 2 giorni dalla pubblicazione. Nella versione inglese dell’app store alla voce Seller spunta correttamente il nome del proprietario dell’account sul quale la app è stata pubblicata ovvero Claudio Cangialosi. Questa voce però, “seller”, in italiano viene tradotta erroneamente come “Sviluppatore” riportanto quindi Claudio Cangialosi! Che tristezza! Vediamo se scrivendo a itunesconnect@apple.com riesco a risolvere….
Prima app pubblicata!
Ieri, l’applicazione “Limiti Neopatentati”, ha finalmente passato la review di Apple ed è stata pubblicata sull’Apple Store! Non nascondo una certa piccola soddisfazione nel vedere il proprio lavoro visibile sullo Store a disposizione di tutti. L’applicazione spero sia solo la prima di molte altre a venire sia per iPhone e chissà anche altre piattaforme. Riuscire a pubblicare applicazioni scritte in HTML5/CSS3/JQTouch/JQuery incaspulate dentro lo scheletro di una app nativa attraverso PhoneGap e distribuirlo si molte piattaforme lo trovo molto interessante. La versione per Android è già pronta sia nella stessa forma (HTML5/PhoneGap) che completamente nativa. Spero di poterla pubblicare anche sul Market al più presto.
L’applicazione è stata sviluppata per il portale SicurAUTO.it. La grafica è stata a cura di Paolo Morbidoli, un grafico amico del direttore e proprietario del portale Claudio Cangialosi.
Comunque per chi volesse vedere la app questo è il link sull’apple store. La app è gratuita fino al 31/08/2011 quindi scaricatela! Se vi va, dopo averla provata, mettete dei commenti sullo Store stesso.
Android, Bluetooth MATE Silver e UUID
Cacchio! è un po che non scrivo sul blog, ne approfitto stasera per condividere un’informazione che spero possa essere utile.
E’ un po che lavoro ad un progettino di lettore RFID bluetooth per un uso molto particolare (spoilers). Ho comprato i componenti da proto-pic.co.uk fabbricati dall’americana sparkfun.com. Tra questi componenti c’è il modulo Bluetooth MATE Silver.
Per cominciare l’esplorazione dello sviluppo su Android nei mesi precedenti mi ero affidato alla mia esperienza di smanettone, autodidatta e sopratutto a Internet dove ho trovato moltissime informazioni ed esempi di codice. Poi ho comprato un libro, una guida per lo sviluppatore, per mettere ordine al caos che avevo in testa. Devo dire che ho fatto bene e molti dei dubbi (specie su Activity e Intent) si sono risolte. Il capitolo del Bluetooth era breve ma come da consiglio ho cominciato dall’esempio BluetoothChat dell’SDK. Questo esempio permette a due cellulari Android di comunicare via bluetooth (facendo il pairing ovviamente) e di scambiarsi messaggi proprio come una chat.
Secondo la documentazione dell’SDK per poterti connettere ad una periferica bluetooth, o meglio ad un servizio che una periferica bluetooth offre è necessario conoscere l’UUID del servizio. Nell’esempio è riportato un UUID che però non va bene per la periferica di cui sopra. Installando l’app sul cellulare si scopre che ogni volta che si tenta di collegarsi alla periferica la connessione fallisce. Perchè? Cercando un po qua ed un po la e leggendo bene il libro e la documentazione si scopre che devi conoscere l’UUID prima di effettuare la connessione. Bene, ma il Bluetooth Mate Silver che non è altro che un SPP (o serial cable replacement) via bluetooth, che UUID ha? Su vari forum ho trovato la risposta : 00001101-0000-1000-8000-00805F9B34FB.
Ma da dove si va a ricavare questo codice? Ci sono vari siti che spiegano come si costruisce un codice del genere ma più banalmente basta fare le seguenti operazioni:
- Associate il BluetoothMate Silver al vostro PC facendo il pairing.
- Andate in “Dispositivi Bluetooth”
- Tasto destro su RN42-XXXX -> Proprietà
- andate nel tab Hardware -> Proprietà
- andate nel tab Dettagli e selezionate la proprietà: GUID servizio Bluetooth
- Bingo!
Copiando ed incollando il valore al posto di quello nell’esempio (senza le parenesi graffe) in BluetoothChat la connessione avviene correttamente.
Alla prossima!
Mai reinventare la ruota
Può sembrare banale ma non lo è. “Mai reinventare la ruota” è un principio al quale mi sono avvicinato sempre di più durante la mia carriera lavorativa e che sto approfondendo maggiormente oggi che sono disoccupato. Perchè mai? Per tanti motivi. Diciamo che negli ultimi mesi di permanenza in azienda, guardando gli annunci di lavoro in Inghilterra e dall’esperienza avuta in un colloquo di lavoro in videoconferenza skype, mi sono reso conto di quali lacune possedessi e di quanto fossi rimasto indietro nelle mie conoscenze. Tantissime sono le cose richieste che, per uno come me che vuol fare il Freelance Developer sono essenziali. Da più parti si richiedono conoscenze di WordPress, Drupal, Zend Framework, Symfony, Magento, JQuery, Unit Testing, SEO per citarne alcuni. Tutte cose che ho sempre trascurato. Con la concorrenza che c’è oggi in questo campo è assolutamente importante riuscire a sviluppare un buon sito web nel minor tempo possibile e cercando di minimizzare il lavoro post-consegna al cliente per il debug e modifiche.
Nel realizzare tutti i siti che ho fatto sono sempre partito da zero o quasi. Le prime librerie che ho usato partendo dal lontatno 2004 furono le “phplib”. Poi passammo al repository PEAR che dette grande impulso allo sviluppo. L’uso di package come Auth, Template Sigma, MDB2 hanno semplificato notevolmente lo sviluppo e reso più rapidi i tempi di consegna. Già nel 2008 quando cominciammo a realizzare un framework MVC interno per il progetto BTS (Blood Transfuion Safety) eravamo a conoscenza di alcuni framework PHP: CakePHP, Symfony, PRADO per citarne alcuni. Dato però che il Time-to-Market era davvero breve (3mesi) ci rendemmo conto che avremmo dovuto spendere almeno 1 mese nell’apprendimento di un nuovo framework. Decidemmo di riciclare il codice di un precedente applicativo (eQuality) che aveva il backend scritto in java ed il database già pronto e di riprogettare semplicemente il VIEW e il CONTROLLER in HTML/PHP/Javascript. Oggi rimpiango quella scelta. Di tempo ne abbiamo avuto molto di più. La prima gara fù dopo più di un anno! Avremmo dovuto adottare Symfony già allora, imparare DOCTRINE e sopratutto un framework MVC serio. Avremmo dovuto riprogettare il database da zero e realizzare un prodotto omogeneo, scritto interamente in PHP puttosto che un ibrido PHP/JAVA. Avremmo risparmiato tempo e avremmo imparato qualcosa di più utile da spendere nel mondo lavorativo. Comunque ormai è fatta.
Dopo diverse ricerche, ho valutato diversi framework e applicazioni PHP. Sono arrivato alla conclusione che esiste un framework/applicazione adatto ad ogni tipologia di sito che uno vuole realizzare. In teoria si potrebbe usare Symfony per tutto, ma lo ripeto: perchè reinventare la ruota? Ecco una tabella che raffronta per ogni tipologia di sito gli strumenti a disposizione:
| Tipo di sito/Framework | Prima scelta | Prima alternativa | Seconda alternativa |
|---|---|---|---|
| BLOG | WordPress | Symfony + plugin | - |
| eCommerce | Magento | Drupal + e-Commerce | Opencart |
| Forums | phpBB | Symfony + plugin | - |
| CMS generici e su misura | Symfony | Diem (Symfony) | Drupal |
Da ora in poi qualsiasi sito personalizzato che farò, e che prevede un’are a di amministrazione (CMS), lo realizzerò con Symfony. Anche e sopratutto per il fatto che uno strumento del genere ti permette di implementare le strategie e le tecniche SEO molto più facilmente. Per me stesso continuerò a sviluppare il forum su WordPress e se un giorno riuscirò a realizzare un progettino per il sito di ecommerce userò sicuramente Magento ma di questo progetto ne parlerò più avanti quando arriverà una spedizione dall’inghilterra.
Primo!
Bene, eccoci qui. Mi sento come quando si va ad abitare in una casa nuova. Sapete com’è, si comincia col fare pulizie per poi riempirla con mobili e poi fare le personalizzazioni che rendono casa propria…unica. Per ora ho tolto i dati predefiniti e ho messo le prime pagine, ma spero di mettere molti contenuti prossimamente.
Ma perché proprio WordPress?
Come dicevo a un mio caro amico: “mai reinventare la ruota”. In teoria avrei potuto creare un blog da zero partendo dalla progettazione del database fino alla scelta del framework (che sarebbe caduta su Symfony 1.4) e mi sarei messo a scrivere codice direttamente usando magari TWIG come sistema di templating. Ma obiettivamente, per l’uso che ne dovevo fare, mi sembrava inutile sopratutto peché che avrei dovuto acquistare uno spazio web su ServerGrove (Hosting per Symfony) oltre a un nome di dominio. Uno spreco di denaro se pensate che WordPress vi dà tutto questo subito e (con piccole limitazioni) gratis. Riserverò lo sviluppo WEB con Symfony per altre tipologie di siti, tipicamente quelli su misura.
Una volta che il blog avrà preso forma penserò a creargli una grafica personalizzata. Sarà motivo per me di imparare e impratichirmi su un argomento su cui non sono mai stato eccezionale: la grafica, appunto. WordPress permette di modificare il CSS del sito con del codice personalizzato. Ci sarà da divertirsi
.