Technology Experience
My personal life

Addio Irvin Kershner!

Il 27 Novembre 2010, qualche giorno fa quindi, è venuto a mancare Irvin Kershner, regista americano grande amico di George Lucas. Aveva 87 anni.

Lo ricordo soprattutto per aver diretto l’indimenticabile “Guerre Stellari – L’Impero colpisce ancora”, uscito nei cinema nel 1980.
Trovo solo adesso il tempo di bloggare due righe su questo fatto.
Chiunque abbia preso parte alla creazione della saga di fantascienza più famosa di tutti i tempi avrà sempre la mia più sincera gratitudine, sia che sappia il suo nome oppure no, famoso o non famoso che sia!

Fonte : http://www.cineblog.it/post/25753/e-morto-irvin-kershner-regista-de-limpero-colpisce-ancora

Wikipedia : Irvin Kershner – Wikipedia, the free encyclopedia

IMDb : Irvin Kershner – IMDb

Thanks Irvin! R.I.P.

Send to Kindle
.NET World

Chiusura della propria app dopo la scadenza della trial

Qualche dettaglio sulla gestione della modalità trial delle proprie applicazioni per Windows Phone 7 la trovate in questo mio post.

Saltiamo subito all’argomento di questo post. Immaginiamo che l’App.xaml sia configurato così:

<trial:TrialManager RunAsTrial="True" Expired="TrialManager_Expired" TimerInterval="00:01:00">
    <trial:TrialManager.ApplicationPolicy>
        <trial:TimeExpirationPolicy TrialDuration="00:03:00" Mode="Lifetime" />
    </trial:TrialManager.ApplicationPolicy>
</trial:TrialManager>

 

Questo blocco XAML configura la libreria SlickThought.Phone in modo tale che la modalità trial della nostra app basi il proprio funzionamento sul tempo. In breve: dopo tre minuti di utilizzo (proprietà TrialDuration della classe TimeExpirationPolicy), viene scatenato l’evento Expired. I tre minuti sono relativi alla sessione – e non complessivamente. All’interno di questo evento possiamo fare quello che vogliamo.

Supponiamo di voler mostrare un messaggio all’utente che dica qualcosa tipo “Spiacente, la modalità trial è scaduta!”, e poi chiudiamo l’applicazione. Sfortunatamente non abbiamo a disposizione un metodo sulla classe Application di Silverlight, per cui dobbiamo escogitare il solito barbatrucco. Questo barbatrucco è raccontato a questo indirizzo, e funziona a dovere.

In breve, l’evento Expired è gestito così:

private void TrialManager_Expired(object sender, SlickThought.Phone.TrialExpirationEventArgs e)
{
    string message = LocalizationManager.GetString("TrialExpiredMessage");
    MessageBox.Show(message, "Trial", MessageBoxButton.OK);
    App.Quit();
}

 

Il metodo Quit è definito così:

internal class QuitException : Exception { }

static void Quit()
{
    throw new QuitException();
}

 

L’ultima cosa importante da fare è ritoccare l’evento…

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
    if (e.ExceptionObject is QuitException)
        return;

    if (System.Diagnostics.Debugger.IsAttached)
        System.Diagnostics.Debugger.Break();
}

 

Morale: se viene scatenata una QuitException(), viene eseguito un banale return, che fa chiudere l’applicazione senza messaggi di errore.

In questo modo l’utente vede apparire un messaggio: quando clicca su Ok per chiudere la MessageBox l’applicazione si chiude e deve riavvarla.

Ed il gioco è fatto!

Send to Kindle
Hardware

Usare wp7 come sveglia

Windows Phone 7 può anche essere usato come sveglia. Nulla di innovativo, ovviamente. Basta andare in Sveglie ed impostare ora, la modalità con cui deve essere ripetuta, la suoneria ed un eventuale messaggio.

Una cosa carina è che se impostate come ripetizione la voce “una volta”, una volta suonata la sveglia non verrà cancellata, ma semplicemente disattivata. Quando dicevo a tutti i miei Nokia precedenti di aver bisogno di una sveglia una tantum, ok sì suonavano, ma poi venivano cancellate. Morale: la volta successiva ero costretto a reinserirle.

Una cosa che invece mi infastidisce è che per poterle sentire sono costretto ad alzare il volume, così la mattina la sento chiaro e forte (anche con i tappi nelle orecchie). Però, attenzione: vero che sentite la sveglia, però purtroppo sentite anche eventuali mail che arrivano in orario notturno. Davvero scomodo, soprattutto per tipi come me che ogni tanto hanno il sonno leggero.

Quindi? E quindi l’uovo di Colombo mi arrivato un paio di giorni fa. Alzate il volume finchè volete, ma attivate la modalità Aereo. In questo modo tutte le trasmissioni sono offline, quindi non potete ricevere nulla (nemmeno le chiamate, però!), però la suoneria al momento giusto suonerà!

Con un effetto collaterale piacevole: risparmiate anche in batteria.

Send to Kindle
Software

Pubblicare screenshot sul proprio blog

Sicuramente molti di voi lettori che lavorano nel mio stesso campo, e non solo, hanno in comune una grande e sola problematica, di cui probabilmente ho già scritto in passato. Questa problematica è: come cavolo uploadare le proprie immagini ed i propri screenshot per inserirli in un post del vostro blog?

Sono sicurissimo che la stragrande maggioranza di voi ha già trovato una soluzione: chi sfrutta il proprio hosting, chi usa SkyDrive, chi usa altri servizi di condivisione files, etc. etc. Io personalmente ho un account Flickr Pro da qualche anno, che mi permette di uploadare tutte le immagini che voglio, senza alcun limite. Sfruttare Flickr, inoltre, è abbastanza semplice: è sufficiente creare un photoset dedicato (esempio: “BlogImages”), renderlo invisibile al pubblico, ed inserire qui dentro tutte le immagini, che poi ovviamente sono reperibili via http. Flickr mi piace molto, e da questo punto di vista offre due vantaggi:

  • una volta uploadata un’immagine, Flickr ve la mette a disposizione in diversi formati (original, large, medium, small, square, etc.)
  • essendo raggiungibili tramite un normalissimo url, non dovete installare alcun plugin per il vostro programma di blog posting (esempio: Windows Live Writer), ma è sufficiente dare un comando che in WLW è un semplice Insert Web Image…

Però, parliamoci chiaro, se state scrivendo un post e volete inserire un’immagine la procedura è un po’ laboriosa (soprattutto se ripetuta quasi ogni giorno):

  1. catturate lo screenshot di quello che volete pubblicare (tramite un tool o un semplice Stamp o ALT + Stamp)
  2. incollate in un editor grafico il contenuto della clipboard appena catturata (possiamo usare qualsiasi cosa, dal semplice Paint all’evolutissimo Photoshop)
  3. salviamo l’immagine in un file locale (chessò C:Immagine.png)
  4. uploadiamo l’immagine su Flickr, tramite Explorer, o tramite Flickr Uploadr
  5. qui le cose si fanno lunghe: bisogna scegliere il photoset giusto (“BlogImages”), bisogna settare la sicurezza (foto privata), dare un nome, descrizione, tags, etc.
  6. finito l’upload, bisogna andare su Flickr via browser, raggiungere l’immagine appena uploadata e fare un copia dell’url pubblico nel formato che vogliamo (io uso Medium)

Beh, tra ieri sera e stasera ho scritto una piccola utility che è davvero ultra-comoda per automizzare i 6 passi qui sopra. L’utility si presenta così:

Il tool si chiama Quick Flickr Uploader. Il modo sicuramente più comodo per utilizzarla è attraverso il menù “Invia a” o “Send to” di Windows.

Il suo funzionamento è molto semplice:

  1. Cliccate col destro su un file immagine sul vostro PC, come nel mio esempio qui sopra – il path viene automaticamente specificato nella casella di testo
  2. Cliccate sul pulsante Ok
  3. L’immagine viene uploadata su Flickr e viene assegnata al photoset che avete scelto – nessun intervento da parte vostra, dovete solo aspettare qualche secondo
  4. Al termine delle operazioni, vi viene restituito l’url dell’immagine in formato Medium
  5. Cliccate sul pulsante Copia per mettere negli appunti l’url completo dell’immagine

I punti elencati sono 5 contro i 6 di prima, ma sono sicuramente più semplici ed istintivi.
Smile

Le impostazioni sono le seguenti…

…ovvero il nome del photoset in cui inserire le immagini ed un eventuale nome di file temporaneo nel caso in cui vogliate uploadare un’immagine contenuta negli appunti (che è una feature ancora work-in-progress).

Ovviamente Quick Flickr Uploader al primo utilizzo va autorizzata.

Se qualcuno è interessato, attenda con fiducia: sistemo due cosette e poi la metterò disponibile da qualche parte.

Smile

Send to Kindle
Hardware

Inviare ebook sull’Amazon Kindle

Da pochi giorni sono un felice possessore di un Amazon Kindle in versione WiFi + 3G. Non sto qui a spiegarvi cos’è, se siete su questo blog probabilmente lo conoscete già. Se siete fra i pochi che non lo conoscete, googlate e soddisfate la vostra curiosità.

A bocca aperta

Le cose che apprezzo del Kindle sono molte (comodità, praticità & velocità di lettura in primis), ma una cosa che mi ha fatto letteralmente strabuzzare gli occhi è la possibilità di inviare un nuovo ebook direttamemente sul Kindle via e-mail, evitando quindi di collegarlo via USB al vostro PC. Funziona in questo modo:

  1. una volta che siete utenti registrati sul sito Amazon (avendo quindi username & password), potete fare Login sul Kindle: in questo modo l’ebook reader viene registrato sul vostro account
  2. se il vostro Kindle è in versione WiFi + 3G, vi vengono assegnati due indirizzi e-mail: nel mio caso sono damiani@kindle.com e damiani@free.kindle.com
  3. sempre sul sito Amazon, dovete specificare uno o più indirizzi e-mail validi per essere considerati come mittenti per l’invio di ebook

La morale di tutto questo è: se io preparo una mail con un indirizzo e-mail che io ho specificato come valido (esempio: pippo@vivendobyte.net) e la mando alla mia mail assegnato al Kindle avendo cura di mettere come attachment il file dell’ebook, il gioco è fatto. L’oggetto della mail può contenere “convert” se vogliamo che l’ebook in allegato venga automaticamente convertito nel formato nativo Kindle (mi pare che sia .amz) – che supporta il Text-To-Speech.

Qui arrivano due precisazione importanti:

  • se avete il Kindle solo in versione WiFi, non avete problemi: non appena attivate la connettività WiFi, ricevete l’ebook, in modo del tutto gratuitamente
  • se avete il Kindle in versione WiFi + 3G, potete ricevere l’ebook in un modo o nell’altro. Attenzione, però: via 3G la trasmissione dell’ebook è a pagamento ($.0,99 per Mb), mentre via WiFi – come prima – è completamente gratuito.
    Mandate la mail a vostronome@free.kindle.com per essere sicuri di ricevere l’ebook SOLO attraverso il WiFi. Se la mandate a vostronome@kindle.com ci sono due possibilità: se avete il WiFi attivo, tutto bene; se il WiFi è spento, l’ebook vi arriva via 3G, e quindi a pagamento

Maggiori informazioni a questo indirizzo, nella sezione “Fees for Personal Document Service”.

Questa possibilità del Kindle mi piace davvero molto, perchè evita il collegamento PC <—> Kindle via USB ed evita complicazioni di copia & incolla. Per me è anche semplice copiare un ebook nella cartella giusta sul Kindle, però sinceramente poter fare il tutto senza cavi & cavetti è davvero troppo comodo. Inoltre, ricordiamoci sempre che collegare un Kindle via USB scatena la ricarica della batteria, e a me non piace molto – soprattutto se magari lo devo tener collegato per pochi secondi, giusto il tempo di metter su qualche libro nuovo. Quindi, ben venga questa cosa.

Send to Kindle
Hardware

Test e considerazioni sul NAS LG N1T1

Se mi state seguendo sul blog o sui vari social network, sarete già al corrente che LG Italia mi ha scelto nelle settimane scorse per provare, tranquillamente a casa mia, il NAS LG N1T1. Ecco quindi un bel post per ringraziare LG e per darvi qualche idea di che cosa è questo prodotto. Il mio è un punto di vista molto schietto e sincero, come sempre, e senza entrare molto nel dettaglio: insomma, nient test approfonditi sulle performance o altre cose dettagliate come magari le trovate sulle riviste di informatica in edicola.

Qualche fotografia è d’obbligo.
Sorriso

IMG_8005

IMG_8015

Il prodotto si presenta come le vedete qui sopra. il NAS ha un solo disco da 1TBytes, ed incorpora un lettore/masterizzatore DVD. L’interfaccia RJ45, sul retro, è da 1Gigabit. La porta USB che vedete sul retro serve per collegare o un altro disco esterno, oppure per il collegamento con una stampante (questo NAS fa anche da print server).

IMG_8014

La prima cosa interessante è lo switch posto sul retro: questo switch a tre posizioni permette di impostare il funzionamento su:

  • External Hard Disk Drive
  • NAS
  • External Optical Disk Drive

L’ultima voce è interessante, perchè permette di usare questo device come lettore/masterizzatore su porta USB. Se avete un netbook sprovvisto di CD/DVD, può esservi comodo.

IMG_8004

Il NAS offre le solite cose tipiche di un NAS: share di rete, server iTunes, server DLNA, print server, client Torrent, ftp server. Si collega perfettamente alla vostra LAN, usando sia un IP dinamico che statico. L’interfaccia di admin è ovviamente raggiungibile via http dal vostro browser. La procedura indicata per la prima installazione è piuttosto “complicata”: dopo aver connesso il NAS alla rete, vi dice di prendere il CD nella confezione, lanciare l’utility per trovare il NAS e configurarlo. A me questa utility non ha mai funzionato. Per sapere l’IP assegnato al NAS, son dovuto andare a vedere la configurazione del mio DHCP. Ma a parte questo piccolo dettaglio, tutto ha sempre funzionato egregiamente.

Una piccola nota sul server DLNA: funziona perfettamente, nel senso che copiando nella directory opportuna tutto il materiale audio di cui disponete, tale materiale risulta fruibile da Windows Media Player, da hard disk multimediali, da Windows Phone 7, etc. etc.

Ad esempio: la mia cartella X:DocumentiIgorMusica sul mio PC è composta da 1327 files, divisi in 253 cartelle. Mentre sul mio NAS “ufficiale” (Thecus N2200) il servizio DLNA dopo un po’ si blocca, sull’LG non ha mai avuto alcun tipo di problema. Altra chicca: se avete aperto Windows Media Player e copiate nuovi files nel folder giusto, il servizio DLNA notifica immediatamente i nuovi contenuti e WMP se ne accorge in tempo reale (con il Thecus devo andare nel pannellino di admin e cliccare Refresh).
Insomma: totalmente promosso.

IMG_8010

Una piccola nota sulla masterizzazione. In breve, funziona così:

  1. se si vuole masterizzare un file ISO, basta copiare il file in \lgnasserviceackupdisc-image
  2. se si vogliono masterizzare dei files, basta copiarli in \lgnasserviceackupdisc-files
  3. quando si inserisce un CD/DVD, è necessario attendere qualche secondo per farlo riconoscere: quando questo accade, si sente un cicalino provenire dal NAS
  4. tutto il resto lo si fa dall’interfaccia di admin via browser, che vedete qui sotto

BurnImage

In questo caso, si seleziona il file .iso che si vuole masterizzare, e poi si clicca sul pulsante Burn in basso a destra. L’operazione avviene in pochi minuti. Al termine il CD/DVD viene automaticamente espulso dal drive.

Forse, diciamo, con un NAS da 1TByte avrei preferito un bel masterizzazione DVD BluRay, ma evidentemente il costo sarebbe schizzato alle stelle. Però fare il backup di tutte le nostro foto sarebbe stato comodo.

La garanzia è italiana? Sì, no, boh? Certo che SI’!!!!
Ed ora un piccolo intermezzo.

Qualche giorno fa sono stato contattato da Pasquale S., docente di informatica a Napoli, che mi ha posto una strana questione. Lui evidentemente è uno dei primi acquirenti italiani di questo prodotto, ed ha avuto problemi ad utilizzare & configurare il print server. Ha contattato il servizio clienti di LG, che gli ha detto che il NAS N1T1 non è in vendita in Italia, e di conseguenza nel nostro Paese non ha garanzia. Ora, Pasquale ha definito me e gli altri quattro tester come “malcapitati” per questa spiacevole vicenda: dal suo punto di vista, LG ci ha fatto provare e recensire un prodotto che nel nostro Paese non arriverà mai. Io ho ovviamente contattato la mia persona di riferimento di LG, il quale ha subito smentito la cosa. Il NAS N1T1 è o al massimo arriverà in Italia, avrà manualistica in italiano, ed ovviamente godrà della garanzia italiana/europea. La mia conclusione è che il servizio clienti LG non è ancora al corrente di questo nuovo prodotto, e quindi di fronte ad una persone che chiede aiuto non hanno trovato meglio da dire che: mi scusi, ma non è supportato. Confido che LG nel prossimo futuro si adegui!

Sorriso

Se avete domande particolari o se volete soddisfare la vostra curiosità, lasciatemi pure commenti: il NAS l’ho restituito da qualche tempo, ma farò il possibile per aiutarvi!

Il costo del prodotto è di Euro 229,00.

Send to Kindle
.NET World

Una comoda libreria per gestire le trial delle nostre applicazioni WP7

Le applicazioni che noi developers possiamo scrivere per Windows Phone 7 sono fondamentalmente di tre tipi:

  1. gratuite
  2. a pagamento, con supporto della trail
  3. a pagamento, senza trial

Per quelle gratuite basta andare nel Marketplace, trovare l’applicazione e cliccare Installa quando richiesto. Per quelle a pagamento con trail, invece, potete decidere se acquistarle subito, oppure prima provarle. Dal nostro di punta di vista, ci affidiamo alla classe LicenseInformation:

LicenseInformation license = new LicenseInformation();

 

Questa classe espone un metodo IsTrial() che ci dice se la nostra applicazione sta girando in modalità trial oppure no. Qui c’è uno svantaggio: se eseguiamo la nostra applicazione da VS2010, il metodo IsTrial() ci darà sempre false, e quindi facciamo un po’ di fatica a testare l’applicazione con le limitazioni che abbiamo deciso di inserire (pause, banner pubblicitari, chiusura dopo un tot numero di minuti, etc.). Come probabilmente avrete letto da qualche altra parte, si tratta di wrappare la classe LicenseInformation, in modo tale possiamo impostare manualmente tramite un semplice booleano True/False la modalità trial oppure no.

Io ho trovato molto utile la libreria SlickThought.Phone.dll, spiegata a questo indirizzo.

Dopo averla aggiunta nei riferimento, è possibile specificare nello App.xaml:

<Application.ApplicationLifetimeObjects>
    <trial:TrialManager RunAsTrial="True" Expired="TrialManager_Expired" >
        <trial:TrialManager.ApplicationPolicy>
            <trial:UsageExpirationPolicy MaxUsage="5"/>
        </trial:TrialManager.ApplicationPolicy>
    </trial:TrialManager>
    <shell:PhoneApplicationService 
        Launching="Application_Launching" Closing="Application_Closing" 
        Activated="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>

 

Il namespace trial è definito come

xmlns:trial="clr-namespace:SlickThought.Phone;assembly=SlickThought.Phone"

 

All’interno del nostro codice possiamo utilizzare la classe TrialManager in questo modo:

if (TrialManager.Current.IsTrial())
{
    // Fai qualcosa che solo la trail dovrebbe fare
}

 

Se il parametro RunAsTrial=”True”, entra in gioco la policy che inietta nella nostra applicazione un particolare comportamento, che fa scadere la trial secondo due diverse modalità: a tempo oppure a numero di avvii dell’applicazione stessa. Le policy sono solamente due: nell’App.xaml definito qui sopra diciamo che l’utente può avviare l’applicazione al massimo per cinque volte. Quando la trial scade, si scatena l’esecuzione dell’evento TrialManager_Expired, all’interno del quale possiamo fare quello che vogliamo (visualizzare un messaggio, chiudere l’app, etc.).

Un app.xaml definito in questo modo:

<trial:TrialManager RunAsTrial="False" Expired="TrialManager_Expired" TimerInterval="00:01:00">
    <trial:TrialManager.ApplicationPolicy>
        <trial:TimeExpirationPolicy TrialDuration="00:01:00" Mode="Lifetime" />
    </trial:TrialManager.ApplicationPolicy>
</trial:TrialManager>

 

scatena l’evento TrialManager_Expired dopo un minuto che l’applicazione è stata avviata, e così via.

Ultima precisazione: se il parametro RunAsTrial=”False”, la chiamata a IsTrial() viene reindirizzata alla classe LicenseInformation del .NET Framework. Ecco quindi trovato il nostro wrapper, che ci permettere di switchare da una modalità all’altra, e quindi di testare la nostra app nella modalità full e nella modalità trial attiva.

Send to Kindle