• Raffaele Fanizzi su LinkedIn

Archives

Archives / 2012 / August
  • Orario Treni in versione 2.1 per iOS e 1.2 per Windows Phone, ma non è tutto...

    Quest'oggi è stata pubblicata la versione 2.1 di Orario Treni per iOS che risolve una serie di problematiche ed aggiunge anche nuove funzionalità. In particolare è stato risolto un crash che si verificava all'avvio dell'app in particolari condizioni di passaggio dalla rete 3G alla rete WiFi. In questi casi può accadere che lo stack network di iOS faccia le bizze ed è necessario gestire la cosa, pena un crash dell'applicazione.

    Orario Treni 2.1

    In termini funzionali è stata aggiunta la possibilità di aggiornare gli orari di un treno direttamente dalla sua schermata di dettaglio. Fino ad oggi, invece, era necessario uscire ed entrare nuovamente nel dettaglio di un treno per aggiornarne le informazioni. Questa funzionalità era già stata implementata nella versione di Orario Treni per Windows Phone.

    I più attenti noteranno un particolare nello screenshot sopraesposto che preannuncia l'arrivo di una nuova versione per iOS nel giro di poche settimane. Al primo che mi invia un'email ed indovina di cosa di tratta regalo un codice promozionale dell'app :)

    La versione 1.2 di Orario Treni per Windows Phone introduce la funzionalità di localizzazione delle stazioni ferroviarie basate su GPS, il supporto ufficiale a Windows Phone Tango, nuove animazioni di transizione da una schermata alla successiva, oltre a risolvere alcuni bug relativi alla precedente versione.

    Tutti i fruitori di Orario Treni, inoltre, sia per Windows Phone che per iOS, avranno a disposizione informazioni più precise e corrette per quanto concerne i binari dei treni.

    Orario Treni per iPhone 

    altro

  • Windows 8, Visual Studio 2012 e .NET Framework 4.5

    Ieri, 15 Agosto 2012, è stata una giornata abbastanza importante per chi come me è appassionato delle tecnologie Microsoft. Benché Windows 8 abbia raggiunto la sua versione definitiva, la cosiddetta RTM (Release to Manufacturing), il 1 Agosto, solo ieri tale versione è stata rilasciata al pubblico e, in particolare, a chi è provvisto di una sottoscrizione MSDN. Non stiamo parlando, quindi, di un rilascio alla massa nella sua versione inscatolata (ammesso che qualcuno lo abbia mai acquistato in questa forma), ma di una commercializzazione che coinvolge prevalentemente aziende e sviluppatori software. 

    Chiaramente da appassionato e sviluppatore quale sono, negli anni ho sempre atteso questo momento per installare e toccare con mano la nuova versione di Windows, anche se quest'anno c'è ben poco lasciato all'immaginazione. La politica adottata da Microsoft che ha visto la pubblicazione online di ben due versioni non definitive di Windows 8 (Customer Preview e Release Preview) ha da un lato consentito a chiunque volesse di provare il suo nuovo OS, ma d'altro canto ci ha privato di quel fattore sorpresa al quale eravamo abituati fino ad ora. Come tutte le scelte, anche questa ha i suoi pro e contro e ritengo comunque apprezzabile l'apertura di Microsoft a questo nuovo modello di rilascio, certamente più vicino al pubblico finale rispetto al passato.

    Windows 8 ha fatto e farà sicuramente parlare di sé in quanto è il tentativo di Microsoft di coniugare due strade che fino ad oggi sono sempre state ben distinte tra loro: il mondo del PC e quello dei dispositivi mobile (tablet in particolare). L'unica azienda che fino ad ora ha iniziato un percorso simile è Apple, che con il suo Mac OS in ambito personal computer e iOS nel suo iPad ha provato, prevalentemente grazie all'uso della piattaforma iCloud, a rendere il più fluido possibile il passaggio da una piattaforma all'altra.

    Windows 8

    Microsoft si è posta un traguardo ancora più ambizioso: non solo parte essenzialmente da zero nel mercato tablet (Windows 7 Starter non lo considero nemmeno, del resto qualcuno tra voi l'ha sentito forse nominare prima d'ora?), ma ci si fionda con un nuovo sistema operativo che sarà lo stesso che troveremo installato sulla prossima generazione di personal computer e notebook. Windows 8 rappresenta, quindi, una fusione a freddo tra PC e tablet con la sua nuova interfaccia Metro (specificatamente ideata per dispositivi touchscreen) che mette in secondo piano (ma non elimina) la classica visualizzazione del desktop.

    Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Windows Vista e Windows 7 avevano in comune almeno un elemento: il menu Start. Con Windows 8 si cambia e tale menù è stato sostituito da questa nuova interfaccia.

    E' chiaro che i puristi dei personal computer non potranno che storcere il naso di fronte ad una scelta così radicale, ma in fin dei conti immagino che anche quando arrivò il menu Start esisteva una generazione di power user che non vide di buon occhio tale novità. Più in generale, le novità sono spesso difficili da digerire: bisogna comprenderle, adattarsi, bisogna imparare ad usarle. In altre parole richiedono impegno ed un allargamento dei propri orizzonti e delle proprie abitudini che non tutti hanno voglia di affrontare.

    Windows 8 non è nuovo solo perché ha una nuova interfaccia grafica, ma è stato profondamente rinnovato in moltissime componenti a basso livello e tale opera di rinnovamento ha permesso di dare vita ad un'altra grande novità: Windows RT. Sui vostri personal computer, notebook e anche sui prossimi tablet saranno disponibili due versioni di questo nuovo OS: Windows 8 e Windows 8 Pro (la versione Enterprise non penso che la vedrete mai). Queste versioni funzioneranno su tutti i personal computer con processore x86 e x64, esattamente come è stato fino ad ora per Windows 7.

    Con Windows RT, invece, Microsoft vuole conquistare il mercato dei PC, notebook e, in particolar modo, tablet basati su processori ARM, cioè CPU (o forse sarebbe meglio dire SoC - System On Chip) con un instruction set diverso da quello x86 e che fino ad oggi abbiamo potuto vedere solo sugli iPad o sui tablet Android. I processori ARM hanno un'efficienza energetica particolarmente elevata e, pertanto, ben si prestano alla realizzazione di dispositivi ultraportatili come lo sono i tablet. Un esempio di dispositivo che verrà proposto sia in versione x86 con Windows 8 Pro, che in versione ARM con Windows RT è Surface di Microsoft.

    Oltre a Windows 8, ieri sono stati rilasciati anche Visual Studio 2012 e il .NET Framework 4.5.... ma poiché devo correre ad installare Windows 8 ne riparleremo tra qualche giorno :)

    altro

  • Crypto Suite: le app per proteggere i propri dati

    Contestualmente alla nuova grafica di questo blog, vi presento il frutto di qualche mese di lavoro: una nuova famiglia di app per iPhone che nasce con l'obiettivo di proteggere i vostri dati.

    Come spesso accade nel mondo degli sviluppatori software, l'idea dietro lo sviluppo di un software scaturisce da un'esigenza personale e la suite di app in questione è stata elaborata proprio a seguito di una mia necessità: poter avere a portata di mano (o se vogliamo di app) una serie di informazioni sensibili.

    Il primo esempio che mi sovviene è quello della carta di credito o prepagata. Personalmente mi è capitato più di una volta di dover effettuare acquisti su internet a casa, in ufficio o magari in viaggio e, pertanto, di dover avere sotto mano i dati dalla carta prepagata che solitamente uso per questo tipo di acquisti. Altrettanto accade per le password o il pin per accedere a siti internet o per fare operazioni bancarie. Sono sicuro che più di uno tra voi ha memorizzato questi numeri in qualche voce della vostra rubrica telefonica, una soluzione sicuramente pratica, ma assolutamente non sicura per ragioni che potete facilmente intuire.

    La soluzione a questo problema è stata quella di sviluppare un'app che potesse consentirmi di immagazzinare e proteggere nel mio iPhone questi dati. Come immaginavo realizzare questo tipo di app è una sfida da molteplici punti di vista. Oggi non è infrequente nello sviluppo software concentrarsi principalmente sulle funzionalità, delegando problematiche quali le prestazioni, l'uso della RAM, ecc... ai potenti computer che abbiamo a disposizione.

    Volete un esempio? Supponiamo di voler criptare un file di testo e di aver già scelto l'algoritmo di cifratura e tutte le impostazioni ad esso associato. Possiamo decidere di leggere interamente il file in memoria, di criptarlo sempre interamente in memoria e di persisterlo ad operazione conclusa. Oppure possiamo scegliere di fare un bel ciclo e, data la dimensione di un buffer, ad ogni ciclo leggere, criptare e persistere solo la quantità di informazioni presente nel buffer. Vi assicuro che il risultato finale in entrambi i casi è lo stesso, ma in termini di utilizzo della memoria le cose cambiano notevolmente.

    Conosco diversi amici e colleghi che si preoccuperebbero di usare meno memoria possibile solo se messi alle strette, ma quando si sviluppa un'app per uno smartphone bisogna fare i conti con due aspetti:

    • benché oggi esistano smartphone quad core con 1 GB di RAM, la realtà è che se vogliamo sviluppare un'app che funzioni sul più ampio numero di dispositivi possibile (dal l'iPhone 3G al 4S per quanto mi riguarda) dobbiamo imporci ordini di grandezza di parecchio inferiori rispetto a quelli messi a disposizione su un PC moderno sia in termini di potenza di calcolo, sia di memoria
    • iOS non è Windows e ciò significa che non esiste pagining o un qualche altro meccanismo che, arrivati al limite della RAM fisica, vi aiuta tutto sommato ad andare avanti. In iOS se un'app consuma più di quanto il sistema operativo ritenga giusto (sul iPhone 3G parliamo di qualche decina di MB, non di più), la prima volta gli arriva un bel Memory Warning, la seconda volta viene piallata senza alcuna possibilità di gestire la cosa

    Qualcuno potrà chiedersi: "ma ci vuole così tanta RAM per criptare quattro cifre del PIN?". Il problema è che come spesso accade mi sono lasciato prendere la mano e, quindi, nello sviluppo di queste app non mi sono limitato alla possibilità di criptare e memorizzare dati testuali, ma ho esteso il tutto a documenti, immagini e fotografie. Vi assicuro che in quest'ultimo caso, quando fai una foto a 8 MPixel, non stiamo parlando di pochi byte, ma di parecchi MB di dati in grado di mettere facilmente in ginocchio le limitate risorse hardware di uno smartphone.

       

    Nel complesso le applicazioni che vi presento oggi sono quattro: CryptoBox Pro, CryptoBox, CryptoPic e CryptoDoc. Le prime due sono in grado di immagazzinare e criptare informazioni testuali, immagini, foto e documenti, mentre le restanti rappresentano delle versioni lite che non implementano rispettivamente la parte documentale e delle immagini.

    Tutte le app utilizzano cifratura AES a 256 bit, mentre solo CryptoBox Pro affianca alla cifratura l'hashing per verificare che i dati non siano stati in qualche modo manipolati dall'esterno.

    Sull'Apple Store trovate decine di app che vi consentono di proteggere i vostri dati, ma la differenza fondamentale tra le mie app e, fatte le dovute eccezioni, la maggioranza delle altre app, è che queste ultime nascondono semplicemente i dati dietro una password senza preoccuparsi di criptarli. In questi casi è sufficiente accedere al file system dell'iPhone per leggere i vostri dati bypassando l'app.

    CryptoBox Pro, CryptoBox, CryptoPic e CryptoDoc, invece, proteggono le vostre informazioni in un formato che risulterebbe inutilizzabile a chiunque non conosca la password che avete scelto per criptarli: anche nel malaugurato caso in cui doveste perdere l'iPhone, non dovreste temere nulla.

    Tra le altre funzionalità vi segnalo anche l'elenco degli accessi non autorizzati che riporta data, ora, posizione GPS e foto di tutti gli accessi non autorizzati, e la antipanic gesture, una gesture che vi consente di riportare rapidamente l'app nella prima schermata di accesso semplicemente coprendo lo schermo con la mano, utile se si avvicina qualcuno al quale non volete far vedere i vostri dati.

    Le app in questo momento sono localizzate in inglese. Anche se penso che le funzionalità siano così semplici ed immediate da essere pienamente comprensibili da chiunque conosca anche molto superficialmente l'inglese, sto comunque lavorando alla traduzione in italiano.

    Se volete maggiori informazioni su queste nuove app vi invito a visitare il nuovo sito http://cryptolab.vifani.com/

    altro

Archivio Blog