Diari della motocicletta e altri mezzi immobili – Introduzione

Roma, una qualsiasi giornata di questo fottuto anno di un signore a caso, senza distinzioni di razza, colore, massa e credo.

L’immobilità avanza, lenta e inarrestabile, su quella che sembra la scena madre di ogni film catastrofico di razza: una strada piena di automobili, immobili, inesorabilmente ferme dinanzi all’inevitabilità..

Qui la catasfrofe in atto non è di natura aliena.. non è un vulcano in eruzione, un terremoto, un attacco terroristico..ha un nome che potrebbe sembrare l’acronimo di qualche malattia strana, ed è conosciuto come uno dei mali principali di Roma:

il G.R.A., il Grande Raccordo Anulare, che circonda la capitale,trasformando in zombie senza cervello tutti i suoi utilizzatori, il G.R.A.,  il Grande Rapporto Anale,la più grande inculata propinata ad una popolazione..

Una Sodomitica creatura dal fascino biblico, un serpente dalle mille spire da cui è impossibile scappare se si vuole entrare dentro la Vecchia Signora, la città addormentata da sempre,tra la confusione dei suoi abitanti, e la totale inadeguatezza ad un mondo sempre più veloce, sempre piu frenetico e sempre piu affollato.

Qui vi narrerò delle storie, anneddoti e gli strani personaggi che giorno dopo giorno scopro, osservo, imparo a conoscere..

Un micromondo quello del G.R.A. degno di un documentario di Discovery Channel, degno di essere esplorato, osservato.

Ottenere le coordinate GPS dal browser con HTML5

Un modo semplice e veloce per ottenere le coordinate gps ,in una pagina html, mediante html5 .

La funziona javascript getCurrentPosition interroga ,se disponibile ,il nostro dispositivo gps (previa richiesta di autorizzazione)  . Se non riesce ad ottenerla da gps può comunque derivarla dall’indirizzo ip, ma il comportamento e le regole sono completamente a carico dell’implementazione del browser.

Questa è la funzione che va usata:

1
2
3
4
5
6
7
8
9
10
11
12
13
if(navigator.geolocation){

navigator.geolocation.getCurrentPosition(successCallback,

errorCallback,

{timeout:60000});

}else{

alert("Il browser non ha un dispositivo GPS");

}

Come vedete la funzione ha due callback, uno che viene invocato in caso di successo e l’altro di errore. Nei parametri e’ possibile impostare il timeout, cioè il tempo di attesa di synch con il gps prima di andare in errore di timeout. Da notare che questo tempo scatta da prima che appaia la popup di richiesta autorizzazione, quindi influisce molto nell’usabilità dell’interfaccia utente. 60 secondi in genere sono un valore sufficiente.

Ora descriviamo cosa deve fare la nostra pagina con i due callback:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//callback in caso di successo

function successCallback(position){

alert("Posizione:[lat="+position.coords.latitude+"][long="+position.coords.longitude+"]");

}

//callback in caso di errore

function errorCallback(error){

switch(error.code){

case error.PERMISSION_DENIED: alert('accesso negato');break;

case error.POSITION_UNAVAILABLE:alert('impossibile ottenere posizione');break;

case error.TIMEOUT:alert('timeout');break;

default: alert('errore generico');break;

}

}

Alcuni browser memorizzano l’autorizzazione con durata giornaliera, altri richiedono l’autorizzazione ogni volta.

Una cosa a cui prestare attenzione è il fatto che la funzione è asincrona, quindi difficile da gestire all’interno di un evento di button pressed o cose simili.

Consigli:

Meglio sfruttarlo nell’onload del document , magari facendo una pagina adHoc che aspetti il timeout della funzione mostrando l’icona di loadinprogress, in modo da far capire all’utente che la lettura dei dati dal gps è in corso.

Qui troverete una documentazione accurata, anche se solo in draft, ma vi consiglio di testare le vostre pagine con tutti i browser in quanto hanno comportamenti molto differenti.

http://dev.w3.org/geo/api/spec-source.html

 

Disabilitare accesso alle pagine mobile di Sharepoint 2010

Dopo aver configurato delle Application Pages sulla nostra fantastica Site Collection, messo tutto online ,ci siamo accorti che accedendo con il browser del cellulare non c’era modo di arrivare alle pagine deployate..

Si veniva dirottati sempre alla versione “mobile” della Central Administration..

Ora apparentemente non c’e’ modo di disabilitare la versione mobile.

Cosi dopo alcune ricerche mi sono imbattuto in questo articolo:

http://blogs.technet.com/b/office2010/archive/2010/03/09/configure-sharepoint-server-2010-for-mobile-device-access.aspx

e cosi ho notato che sharepoint di default stava usando il Browser Definition schema di asp, deployato nella cartella App_Browsers della nostra virtual directory su IIS.

In questa cartella (che nel mio caso si trova su C:\inetpub\wwwroot\wss\VirtualDirectories\80\App_Browsers), c’e’ un file chiamato compat.browser.

In questo file sono presenti tutte le definizioni di dispositivi e browser, e le regole di comportamento di asp.net.

 Esempio di configurazione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- SymbianOS Safari Browser -->

<browser id="SymbianSafari" parentID="Safari2">

  <identification>

     <userAgent match="SymbianOS" />

  </identification>

  <capabilities>

    <capability name="isMobileDevice" value="true" />

    <capability name="canInitiateVoiceCall" value="true" />

 </capabilities>

</browser>

 Per disabilitare l’accesso alla versione mobile basta andare sul file e settare i vari isMobileDevice a false:

1
2
3
4
5
<capability name="isMobileDevice" value="true" />

diventa:

<capability name="isMobileDevice" value="false" />

 Se usate una funzione di replace, fate attenzione perche non tutte le righe sono scritte con lo stesso numero di spazi tra l’attributo name e il value, quindi molti “isMobileDevice” potrebbero rimanere a true (cosa successa a piu di una persona).

 

Buon Divertimento.