<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>zazy.it</title>
	<atom:link href="http://www.zazy.it/wp/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.zazy.it/wp</link>
	<description>L&#039;informatica secondo me</description>
	<lastBuildDate>Wed, 06 Jul 2011 16:37:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>La timeline ed i cambi di data e orario su sistemi Windows</title>
		<link>http://www.zazy.it/wp/?p=238</link>
		<comments>http://www.zazy.it/wp/?p=238#comments</comments>
		<pubDate>Wed, 13 Apr 2011 10:44:01 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Informatica forense]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[data e ora]]></category>
		<category><![CDATA[modifica]]></category>
		<category><![CDATA[timeline]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=238</guid>
		<description><![CDATA[La timeline – intesa come sequenza degli eventi avvenuti all’interno di un sistema – è un elemento di fondamentale importanza quando si vuole comprendere ciò che è avvenuto in un sistema informatico. Ma non sempre ci si può fidare ciecamente dei dati riportati dai tool automatizzati. Una modifica maliziosa a data e ora del sistema]]></description>
			<content:encoded><![CDATA[<p>La timeline – intesa come sequenza degli eventi avvenuti  all’interno di un sistema – è un elemento di fondamentale importanza  quando si vuole comprendere ciò che è avvenuto in un sistema  informatico. Ma non sempre ci si può fidare ciecamente dei dati riportati dai tool  automatizzati. Una modifica maliziosa a data e ora del sistema potrebbe  passare inosservata. In questo articolo vengono trattati alcuni aspetti  da tenere presenti quando si costruisce una timeline su sitemi Windows.</p>
<h2>La costruzione della timeline</h2>
<p>La timeline viene solitamente costruita utilizzando dei tool automatizzati i quali prendendo come base i dati MAC<sup>[<a href="#la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-1" class="footnoted" id="to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-1">1</a>]</sup> dei file. I dati MAC vengono mantenuti dal sistema operativo, si  basano sull’ora attuale impostata sul sistema e forniscono un’idea delle  operazioni che sono state effettuate. In un sistema basato su sistema  operativo Windows vi sono altre fonti utili che devono essere tenute  presenti durante le analisi quali il registro di configurazione, i registri degli eventi ed  altre fonti che esulano dagli scopi di questo articolo.</p>
<p>Esistono diversi tool che creano una timeline basandosi sulle  operazioni effettuate sui file. Tali tool sono disponibili open source<sup>[<a href="#la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-2" class="footnoted" id="to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-2">2</a>]</sup> e generano una sequenza di record in cui viene specificata ogni singola  operazione svolta (lettura, scrittura o creazione del file), la data e  l’ora in cui è avvenuta l’operazione, il nome del file coinvolto.</p>
<p>Ad esempio la seguente timeline:</p>
<pre>15 giu 2010@15.33  3852       .a..  C:\Programmi\Microsoft Office\word.exe
15 giu 2010@15.51  25422      .ac.  C:\Users\utente1\Documents\Prova.doc</pre>
<p>indica che il 15 giugno 2010  alle ore 15.33 è stato eseguito il  programma di videoscrittura Word e che alle ore 15.51 è stato salvato il  file dal nome Prova.doc.</p>
<h2>Modifiche maliziose e tracciabilità</h2>
<p>Ci sono diversi modi per cambiare la data e l’ora del sistema ma non  tutti lasciano tracce evidenti dell’operazione. La data può essere  modificata attraverso il BIOS<sup>[<a href="#la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-3" class="footnoted" id="to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-3">3</a>]</sup> oppure attraverso il sistema operativo in esecuzione.</p>
<p>La modifica della data e dell’ora può avvenire con intenti maliziosi,  con l’esplicito intento di nascondere le tracce di un’azione oppure di  lasciar intendere che il computer fosse in uso quando in realtà non lo  era. Per tale ragione è necessario fare analisi approfondite per cercare  di identificare cambi maliziosi ed effettuare constatazioni più  accurate, affiancando alla timeline dei dati MAC dei file, anche  l’analisi del registro di configurazione e del registro degli eventi.</p>
<h3>Modifica della data e dell’ora attraverso il BIOS</h3>
<p>Tutti i sistemi informatici forniscono un metodo per accedere al  pannello di configurazione del BIOS. Attraverso questo pannello è  possibile, tra le altre cose, modificare la data e l’ora di sistema.  Tale modifica – essendo effettua a basso livello e fuori dal controllo  del sistema operativo – non è rintracciabile in maniera diretta dal  sistema operativo.</p>
<p>Non esiste un modo univoco per identificare il verificarsi di una  simile situazione. Dall’analisi del registro degli eventi di Windows,  però, ci si può accorgere di alcune anomalie. Visualizzando l’elenco  degli eventi si potrebbe notare una non continuità nella successione  delle date. Ad esempio, potremmo notare un evento registrato il 25  gennaio che viene visualizzato successivamente ad un evento registrato  il 15 di febbraio. Questo sarebbe un segno evidente della manomissione  della data. In altri casi, però, non è possibile accorgersi della manomissione. Pensiamo ad esempio ad un sistema che sia stato spento per tutto il periodo che vada dal 25 gennaio al 2 febbraio e supponiamo che l&#8217;ultima operazione svolta sul file Prova.doc risalga alle ore 23.15 del 24 gennaio.</p>
<p>Il giorno 3 febbraio l&#8217;utente accende il pc, accede al BIOS e cambia la data dal 3 febbraio al 25 gennaio. Il sistema si avvia e l&#8217;utente modifica il file Prova.doc. In questo caso, nella timeline creata troveremo una coppia di eventi del genere:</p>
<pre>24 gen 2011@23.15  26335       m...  C:\Users\utente1\Documents\Prova.doc
25 gen 2011@18.23  26335       ma..  C:\Users\utente1\Documents\Prova.doc</pre>
<p>Il secondo evento del 25 gennaio, in cui è stato modificato il file Prova.doc, in realtà è avvenuto il giorno 2 febbraio e non c&#8217;è alcun modo di scovare l&#8217;artefatto.</p>
<h3>Modifica della data e dell’ora attraverso l’interfaccia del sistema operativo</h3>
<p>L’uso del BIOS per la modifica dell’ora non è alla portata di tutti.  Per l’utente meno esperto risulta più semplice utilizzare l’interfaccia  grafica di Windows per la modifica della data e dell’ora. Tale  operazione in questo caso è molto semplice da effettuare ma lascia una  traccia all’interno del registro degli eventi. La traccia dipende dalla  versione di Windows che viene analizzata. In Windows Seven, ad esempio,  nel registro degli eventi di Sicurezza troveremo un evento con ID 4616  con dicitura “Modifica stato sicurezza”. Oltre all’evento nel registro  di Sicurezza verrà inserito un evento all’interno del registro di  Sistema con ID 1 (Kernel-General). Entrambi gli eventi riportano, nella  descrizione, sia la data e l’ora modificata che le precedenti.</p>
<h2>Analisi ed utilizzo di tool automatizzati</h2>
<p>La generazione della timeline stilata in maniera completamente  manuale può richiedere una quantità di tempo enorme. I tool di  generazione delle timeline sono molto utili e fanno risparmiare  moltissimo tempo ma si dimostrano inefficaci qualora non venissero  affiancati da un’analisi attenta ed accurata delle altre fonti.</p>
<p>La necessità di approfondire tramite l’utilizzo di altre fonti di  dati – come il registro degli eventi di Windows – diviene ancora più  forte quando i dati estratti devono essere utilizzati per determinare  se, in un determinato lasso di tempo, il sistema sotto analisi era in  funzione e se fosse stato sottoposto ad azioni interattive da parte di  un utente umano.</p>
<p>&#8212;</p>
<ol class="footnotes">
	<li class="footnote" id="la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-1"><strong><sup>[1]</sup></strong> MAC è l’acronimo di Modified Accessed Created e si riferisce ai  timestamp in cui un file è stato creato, oppure acceduto o modificato. <a class="note-return" href="#to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-1">&#x21A9;</a></li>
	<li class="footnote" id="la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-2"><strong><sup>[2]</sup></strong> La filosofia open source prevede che il codice sorgente di un software  sia disponibile al pubblico. In questo modo è possibile verificare la  bontà dei dati raccolti <a class="note-return" href="#to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-2">&#x21A9;</a></li>
	<li class="footnote" id="la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-3"><strong><sup>[3]</sup></strong> Basic Input Output System: è una componente software che fornisce una  serie di operazioni di base per accedere all’hardware sottostante e  sfruttare le caratteristiche delle componenti connesse al sistema <a class="note-return" href="#to-la-timeline-ed-i-cambi-di-data-e-orario-su-sistemi-windows-n-3">&#x21A9;</a></li></ol>


]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=238</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ne.Me.Sys. e il valore probatorio</title>
		<link>http://www.zazy.it/wp/?p=200</link>
		<comments>http://www.zazy.it/wp/?p=200#comments</comments>
		<pubDate>Thu, 25 Nov 2010 14:06:54 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Informatica forense]]></category>
		<category><![CDATA[Sicurezza]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=200</guid>
		<description><![CDATA[Da qualche giorno è finalmente attivo il tanto atteso servizio &#8220;Misura Internet&#8221; che pone a disposizione degli utenti un software per misurare la qualità della propria connessione ADSL. Tale misurazione ha valore probatorio qualora dimostri che il fornitore dei servizi venga meno alle sue promesse. Il software approvato dall&#8217;AgCom è Ne.Me.Sys. che può essere prelevato,]]></description>
			<content:encoded><![CDATA[<p>Da qualche giorno è finalmente attivo il tanto atteso servizio &#8220;Misura Internet&#8221; che pone a disposizione degli utenti un software per misurare la qualità della propria connessione ADSL. Tale misurazione ha valore probatorio qualora dimostri che il fornitore dei servizi venga meno alle sue promesse. Il software approvato dall&#8217;AgCom è Ne.Me.Sys. che può essere prelevato, previa registrazione, dal sito <a title="Misura Internet" href="http://www.misurainternet.it" target="_blank">www.misurainternet.it</a>.</p>
<h3>1. Ne.Me.Sys.: come funziona</h3>
<p>Il software effettua le misurazioni collegandosi ad un server FTP sul quale sono presenti due cartelle denominate <em>upload</em> e <em>download</em>. La cartella <em>upload</em> viene utilizzata per trasferire file dal client al server permettendo la misurazione della velocità di trasferimento in upstream. La cartella <em>download</em> contiene dei file a dimensione predeterminata (7 Megabit, 10 Megabit eccetera) che vengono trasferiti sul computer client per la misurazione della velocità di trasferimento in downstream.</p>
<div id="attachment_204" class="wp-caption alignleft" style="width: 290px"><img class="size-full wp-image-204 " title="Collocazione server FTP per i test di Ne.Me.Sys." src="http://www.zazy.it/wp/wp-content/uploads/2010/11/nemessys_nap.png" alt="Collocazione server FTP per i test di Ne.Me.Sys." width="280" height="155" /><p class="wp-caption-text">fig. 1 - Collocazione server FTP per i test di Ne.Me.Sys.</p></div>
<p>I server utilizzati da Ne.Me.Sys. per i test sono fisicamente collocati nei NAP<sup>[<a href="#ne-me-sys-e-la-prova-legale-n-1" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-1">1</a>]</sup> (fig. 1). In questo modo il trasporto dei pacchetti tra il client ed il server avviene solo attraverso la rete dell&#8217;operatore a cui è connesso il client e la misurazione non viene influenzata dall&#8217;eventuale congestione delle reti degli altri operatori. Al termine di ogni misurazione Ne.Me.Sys. genera un file xml da inviare al centro raccolta dati e dai quali viene poi generato il documento probatorio. Il file xml contiene i tempi impiegati per i download dei file dal server FTP, i tempi impiegati per gli upload dei file al server FTP ed i tempi di risposta alle richieste di echo (ping) da parte del server FTP.</p>
<h3 style="clear: left;">2. La connessione ad internet</h3>
<div id="attachment_210" class="wp-caption alignright" style="width: 237px"><img class="size-full wp-image-210" title="Collegamento ad internet tramite gateway" src="http://www.zazy.it/wp/wp-content/uploads/2010/11/nemessys_collegamento_client_gateway.png" alt="Collegamento ad internet tramite gateway" width="227" height="131" /><p class="wp-caption-text">fig. 2 - Collegamento ad internet tramite gateway</p></div>
<p>Per usufruire della connessione ad internet è necessario stipulare un contratto con un ISP<sup>[<a href="#ne-me-sys-e-la-prova-legale-n-2" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-2">2</a>]</sup> e dotarsi di un modem ADSL che permetterà al nostro computer di comunicare con i sistemi informatici dell&#8217;ISP. Volendo generalizzare<sup>[<a href="#ne-me-sys-e-la-prova-legale-n-3" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-3">3</a>]</sup> possiamo vedere il modem come il gateway<sup>[<a href="#ne-me-sys-e-la-prova-legale-n-4" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-4">4</a>]</sup> della rete a cui il computer è collegato. Il gateway viene visto dal nostro computer come una scatola nera a cui viene attribuito un indirizzo IP. Lo scopo del gateway è quello di far giungere i pacchetti che transitano attraverso di esso a destinazione il più velocemente possibile sfruttando al massimo la velocità delle sue connessioni. Per questo motivo se il gateway è connesso ad una linea ADSL che ha un flusso dati massimo di 10 Megabit, allora la rete interna potrà usufruire di un flusso dati massimo di 10 Megabit (fig. 2).</p>
<h3>3. E se il gateway &#8220;imbroglia&#8221;?</h3>
<div id="attachment_212" class="wp-caption alignleft" style="width: 229px"><img class="size-full wp-image-212 " title="Connessione ad internet tramite con traffic shaper" src="http://www.zazy.it/wp/wp-content/uploads/2010/11/nemessys_collegamento_client_trafficshaper.png" alt="Connessione ad internet tramite con traffic shaper" width="219" height="135" /><p class="wp-caption-text">fig. 3 - Connessione ad internet tramite con traffic shaper</p></div>
<p>Essendo il gateway una scatola nera è possibile sostituirlo con un qualunque sistema informatico ad-hoc senza che il computer client sia in grado di notare la differenza. Il nuovo gateway potrebbe essere un computer in grado di eseguire un <em>traffic shaper</em><sup>[<a href="#ne-me-sys-e-la-prova-legale-n-5" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-5">5</a>]</sup> configurato in modo da fornire ai client della rete un flusso dati individuale di 25 kilobit (fig. 3). Questo basterebbe a falsare i risultati ottenuti dalla misurazione dei flussi upstream e downstream.</p>
<p>Oltre al flusso upstream e downstream Ne.Me.Sys. misura anche il tempo che impiega un singolo pacchetto per arrivare a destinazione e tornare indietro. Il <em>ping</em> dell&#8217;host utilizza il protocollo ICMP<sup>[<a href="#ne-me-sys-e-la-prova-legale-n-6" class="footnoted" id="to-ne-me-sys-e-la-prova-legale-n-6">6</a>]</sup> e si basa sull&#8217;invio di una richiesta di ECHO al server di destinazione il quale, una volta ricevuto il pacchetto, invierà una risposta all&#8217;host richiedente. Ricevuta la risposta l&#8217;host utlizza i tempi di invio e ricezione, oltre al timestamp del pacchetto ricevuto in risposta, per determinare i tempi di andata e ritorno del pacchetto. Dotando il gateway di un software dedicato a ritardare l&#8217;inoltro della richiesta ICMP e della relativa risposta è possibile incidere in maniera molto significativa sulla misurazione.</p>
<h3>4. Conclusioni</h3>
<p>Come si è visto è possibile intervenire maliziosamente al fine di falsare le misurazioni effettuate dal software Ne.Me.Sys. senza che questo fosse in grado di accorgersene. Qualora l&#8217;ISP si preoccupasse di loggare tutti i pacchetti che transitano sulla sua rete sarebbe possibile sollevare dubbi in merito alla presenza o meno di un gateway malizioso ma nessuna certezza potrebbe essere fornita. Ci si chiede, allora, se non sia stato un po&#8217; azzardato dotare di valore probatorio il documento prodotto dalle misurazioni di Ne.Me.Sys. vista la semplicità con cui questi risultati possono essere alterati. Certo ci sarebbe ancora molto da discutere sulla possibilità di confutare una misurazione alterata ma il concetto di base resta sempre lo stesso.</p>
<ol class="footnotes">
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-1"><strong><sup>[1]</sup></strong> NAP è l&#8217;acronimo di Neutral Access Point. E&#8217; il nodo di interscambio tra le reti dei diversi operatori. <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-1">&#x21A9;</a></li>
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-2"><strong><sup>[2]</sup></strong> ISP è l&#8217;acronimo di Internet Service Provider. Con questa sigla viene identificato il soggetto che fornisce il servizio di connettività internet <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-2">&#x21A9;</a></li>
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-3"><strong><sup>[3]</sup></strong> Tale generalizzazione è possibile poichè tutte le situazioni possono essere ricondotte a quella qui presentata. <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-3">&#x21A9;</a></li>
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-4"><strong><sup>[4]</sup></strong> Il gateway è la componente hardware o software che permette di instradare i pacchetti verso l&#8217;esterno della rete. <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-4">&#x21A9;</a></li>
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-5"><strong><sup>[5]</sup></strong> Un traffic shaper è un software capace di regolare il flusso dei pacchetti che transitano attraverso un host collegato ad una rete permettendo la regolazione selettiva della banda disponibile. <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-5">&#x21A9;</a></li>
	<li class="footnote" id="ne-me-sys-e-la-prova-legale-n-6"><strong><sup>[6]</sup></strong> ICMP è l&#8217;acronimo per Internet Control Message Protocol e si riferisce al protocollo utilizzato per trasmettere informazioni di controllo tra host. <a class="note-return" href="#to-ne-me-sys-e-la-prova-legale-n-6">&#x21A9;</a></li></ol>


]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=200</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il processo di boot di Android</title>
		<link>http://www.zazy.it/wp/?p=170</link>
		<comments>http://www.zazy.it/wp/?p=170#comments</comments>
		<pubDate>Tue, 21 Sep 2010 18:38:41 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mondo Mobile]]></category>
		<category><![CDATA[boot]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=170</guid>
		<description><![CDATA[Per quanto il suo hardware sia fortemente ridotto, un sistema di elaborazione mobile, sia esso uno smartphone o un tablet, presenta forti analogie con il più ingombrate sistema desktop: sono dotati di uno o più processori, di una memoria volatile e di una memoria di massa persistente, il tutto interconnesso tramite una scheda madre dalle]]></description>
			<content:encoded><![CDATA[<p>Per quanto il suo hardware sia fortemente ridotto, un sistema di elaborazione mobile, sia esso uno smartphone o un tablet, presenta forti analogie con il più ingombrate sistema desktop: sono dotati di uno o più processori, di una memoria volatile e di una memoria di massa persistente, il tutto interconnesso tramite una scheda madre dalle più svariate caratteristiche.</p>
<p>Allo stesso modo il processo di boot di una piattaforma mobile è molto simile a quello di un normale desktop. Anche se i sistemi operativi delle piattaforme mobile sono numerosi e spesso proprietari, il processo che porta all&#8217;avvio del kernel del sistema è pressochè identico indipendentemente dalla piattaforma che il sistema operativo deve controllare.</p>
<p>Tutto il processo coinvolge, a catena, diverse fasi e componenti:</p>
<p><img class="aligncenter size-full wp-image-196" title="Fasi di boot di Android" src="http://www.zazy.it/wp/wp-content/uploads/2010/11/boot_android.png" alt="Fasi di boot di Android" width="345" height="102" />questo articolo descrive ognuna di queste fasi senza scendere troppo nei dettagli tecnici.</p>
<p><img src="file:///C:/DOCUME%7E1/zazy/IMPOST%7E1/Temp/moz-screenshot.png" alt="" /></p>
<h3>1. Accensione ed esecuzione del codice nella boot ROM</h3>
<p>All&#8217;atto dell&#8217;accensione tutte le componenti hardware si trovano in uno stato che possiamo definire, con le dovute precauzioni, &#8220;caotico&#8221;: nessuna inizializzazione è stata ancora effettuata, l&#8217;alimentazione è molto instabile ed i clock interni, quelli che sincronizzano alla perfezione tutte le componenti, non sono ancora sincronizzati. Quando il sistema si è stabilizzato viene eseguito il codice contenuto all&#8217;interno della boot ROM. Si tratta di un piccolo pezzo di codice cablato all&#8217;interno dell&#8217;ASIC<sup>[<a href="#il-processo-di-boot-di-android-n-1" class="footnoted" id="to-il-processo-di-boot-di-android-n-1">1</a>]</sup>. La boot ROM conosce la struttura hardware del sistema ed è in grado di identificare, grazie ai registri di sistema,  la periferica di boot dalla quale preleva il codice che compone la prima fase del boot loader<sup>[<a href="#il-processo-di-boot-di-android-n-2" class="footnoted" id="to-il-processo-di-boot-di-android-n-2">2</a>]</sup> caricandolo nella memoria RAM interna. Terminato il caricamento la boot ROM passa l&#8217;esecuzione alla prima istruzione della prima fase del boot loader.</p>
<h3>2. Il boot loader</h3>
<p>Il boot loader è un piccolo programmino che si preoccupa di configurare alcuni aspetti dell&#8217;hardware prima di passare il controllo al kernel del sistema operativo. Sui sistemi desktop i più famosi sono LiLO e GRUB per sistemi Linux ed NTLDR della Microsoft per sistemi Windows. Nel caso di sistemi embedded ogni produttore fornisce il suo personalissimo boot loader specializzato per uno specifico terminale. In ogni caso i sistemi operativi hanno dei requisiti che i boot loader devono rispettare affinchè il sistema operativo stesso sia in grado di avviarsi correttamente.</p>
<p>Solitamente il bootloader si compone di due fasi e per ognuna delle due fasi c&#8217;è del codice dedicato memorizzato nella periferica di boot. La prima fase si occupa principalmente di riconoscere la RAM esterna ed inizializzarla insieme, eventualmente, ad altri dispositivi presenti sul terminale. Quando il terminale è pronto il codice della seconda fase viene prelevato dalla periferica di boot e viene caricato in memoria.</p>
<p>Durante l&#8217;esecuzione della seconda fase del boot loader vengono inizializzati i file system ed il supporto per la comunicazione di rete. Per i sistemi come gli smartphone si fa anche carico di inizializzare il modem, le protezioni di basso livello per la memoria ed attivare le opzioni per la sicurezza.</p>
<p>Al termine della seconda fase il boot loader caricherà il kernel di Linux. Solitamente il kernel è memorizzato nella periferica di boot ma nulla vieta che possa essere memorizzato in altre posizioni. E&#8217; però necessario che il boot loader sia in grado di inizializzare e di accedere alla periferica. Per questa ragione il boot loader non sarà mai in grado, da solo, di caricare un kernel memorizzato su una SD con file system NTFS.</p>
<p>Durante la fase di caricamento del kernel nella RAM il boot loader prepara la memoria affinchè sia possibile passare dei parametri al kernel, il quale li legge in fase di avvio. Alla fine del caricamento il boot loader effettua un salto all&#8217;indirizzo a cui è stato caricato il kernel il quale prende possesso del sistema.</p>
<h3>3. Il kernel di Linux</h3>
<p>La procedura di start up del kernel di Android è molto simile a quella seguita da un kernel Linux su un sistema desktop ed in generale sugli altri sistemi. Il kernel inizializza ed imposta tutto ciò che è necessario a far girare il sistema. Vengono inizializzati i controller degli interrupt, le protezioni della memoria, le cache e gli algoritmi di scheduling. L&#8217;inizializzazione dello spazio utente avviene tramite il processo init che nell&#8217;albero delle cartelle di Android è situato in system/core/init. E&#8217; il primo processo a girare nello spazio utente.</p>
<h3>4. Il processo init</h3>
<p>Il processo init è il padre di ogni altro processo che gira nello spazio utente. Durante il suo avvio processa il file init.rc, uno script che descrive i servizi di sistema, il file system ed altri parametri che è necessario impostare. Nel progetto open source di Android questo script lo si trova in system/core/rootdir.</p>
<p>Tra i tanti servizi di sistema avviati dal processo init troviamo Zygote, un processo di sistema che si fa carico di configurare ed avviare un&#8217;istanza di Dalvik, la Java Virtual Machine utilizzata da Android.</p>
<h3>5. Il System Server</h3>
<p>Il System Server è il primo componente java che viene eseguito da Dalvik. Questo componente è paragonabile al processo init per Linux poichè si fa carico di avviare tutti i servizi di Android come il gestore della telefonia ed il bluetooth. Le sue azioni sono codificate direttamente nel codice java<sup>[<a href="#il-processo-di-boot-di-android-n-3" class="footnoted" id="to-il-processo-di-boot-di-android-n-3">3</a>]</sup> e non è quindi possibile configurarlo tramite file.</p>
<h3>6. Completamento della fase di boot</h3>
<p>Una volta che il System Server è attivo ed ha avviato tutti i servizi viene emanato un intent denominato ACTION_BOOT_COMPLETED. Questo intent avvisa tutti i processi e le applicazioni che il boot del sistema è terminato con successo.  Per effettuare delle azioni come registrare un allarme o avviare un proprio servizio, le applicazioni che intendono farlo devono registrarsi per ricevere questo intent.</p>
<ol class="footnotes">
	<li class="footnote" id="il-processo-di-boot-di-android-n-1"><strong><sup>[1]</sup></strong> ASIC è l&#8217;acronimo di Application-Specific Integrated Circuit. Si tratta di un circuito integrato realizzato per uno scopo specifico.  <a class="note-return" href="#to-il-processo-di-boot-di-android-n-1">&#x21A9;</a></li>
	<li class="footnote" id="il-processo-di-boot-di-android-n-2"><strong><sup>[2]</sup></strong> Il bootloader solitamente si compone di due fasi: la prima fase effettua delle inizializzazioni di sistema per poi caricare il codice della seconda fase che provvede a terminare il processo di boot. <a class="note-return" href="#to-il-processo-di-boot-di-android-n-2">&#x21A9;</a></li>
	<li class="footnote" id="il-processo-di-boot-di-android-n-3"><strong><sup>[3]</sup></strong> Le azioni cablate all&#8217;interno del codice sono reperibili nel metodo run() della classe ServerThread implementata nel file frameworks/base/services/java/com/android/server/SystemServer.java del codice sorgente di Anrdoid <a class="note-return" href="#to-il-processo-di-boot-di-android-n-3">&#x21A9;</a></li></ol>


]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=170</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>L&#8217;integrità dei dati sottoposti a sequestro</title>
		<link>http://www.zazy.it/wp/?p=150</link>
		<comments>http://www.zazy.it/wp/?p=150#comments</comments>
		<pubDate>Fri, 16 Jul 2010 13:57:00 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Informatica forense]]></category>
		<category><![CDATA[dati]]></category>
		<category><![CDATA[firma]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[informatica forense]]></category>
		<category><![CDATA[integrità]]></category>
		<category><![CDATA[sicurezza]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=150</guid>
		<description><![CDATA[Così come avviene per i beni materiali che quando vengono sottoposti a sequestro devono essere protetti affinchè nessuno li manometta, anche i dati salvati all&#8217;interno dei supporti di memorizzazione sottoposti a sequestro devono essere garantiti immutati pena la compromissione degli sforzi investigativi. L&#8217;attività investigativa deve inoltre assicurarsi di poter avere la più grande quantità di]]></description>
			<content:encoded><![CDATA[<p>Così come avviene per i beni materiali che quando vengono sottoposti a sequestro devono essere protetti affinchè nessuno li manometta, anche i dati salvati all&#8217;interno dei supporti di memorizzazione sottoposti a sequestro devono essere garantiti immutati pena la compromissione degli sforzi investigativi. L&#8217;attività investigativa deve inoltre assicurarsi di poter avere la più grande quantità di dati possibili a sua disposizione al fine di intraprendere un&#8217;indagine quanto più accurata ed esaudiente possibile.</p>
<h3>L&#8217;atto del sequestro</h3>
<p>Quando gli organi predisposti si accingono ad effettuare il sequestro devono attenersi ad una semplice regola: se l&#8217;apparecchiatura è accesa, <strong>non spegnerla</strong>; se l&#8217;apparecchiatura è spenta, <strong>non accenderla</strong>.</p>
<p>Quando un&#8217;apparecchiatura come un computer è in funzione deve essere lasciata in funzione non solo perchè è possibile effettuare un&#8217;analisi <em>live</em> della memoria RAM alla ricerca di eventuali password utilizzate per la cifratura di partizioni e dati, ma è molto probabile che l&#8217;utente abbia posto in essere delle strategie che, qualora il computer non venga spento con le dovute attenzioni, prevedono l&#8217;esecuzione di script ed automatismi che potrebbero distruggere in maniera irreversibile dati importanti per le indagini. Laddove non vi siano le necessità di un&#8217;indagine live o non si dispongono di mezzi e risorse per farle, la cosa migliore da fare è quella di spegnere l&#8217;apparecchiatura eludendo ogni azione che permetta al sistema di avviare procedure di spegnimento (una di queste potrebbe essere il distacco della spina dopo aver forzato il rilascio delle cache di scrittura).</p>
<p>Per una ragione molto simile è opportuno evitare di avviare un sistema spento. Oltre alla possibilità dell&#8217;esecuzione di script ed automatismi che distruggono i dati, è possibile che alcuni software vadano a scrivere dei file e queste scritture potrebbero essere indirizzate verso settori dei supporti di memorizzazione precedentemente &#8220;abitati&#8221; da dati utili alle indagini.</p>
<h3>L&#8217;integrità successiva al sequestro</h3>
<p>Le strategie seguite all&#8217;atto del sequestro sono solo il primo passo per ottenere la maggior quantità di dati possibile che non siano compromessi. Ma l&#8217;integrità, successivamente al sequestro, deve essere garantita immutata al fine di difendere lo stato delle cose quando queste non sono più nella disponibilità del proprietario. I dati devono essere protetti contro le scritture accidentali e, soprattutto, contro le manomissioni volontarie.</p>
<p>Contro le scritture accidentali è possibile ricorrere a dispositivi software o hardware. Quelli <strong>software</strong> sono molto economici ed hanno la necessità di essere installati su un sistema in esecuzione o su un sistema host che verrà poi utilizzato per l&#8217;analisi. Alcuni sistemi operativi (come ad esempio Linux) permettono di operare sui dispositivi in sola lettura garantendo una protezione sicura ed ineludibile. I dispositivi <strong>hardware</strong>, invece, denominati <strong>write blockers</strong>, sono decisamente più costosi e vanno ad interporsi tra la logica elaborativa principale e le unità di memorizzazione fungendo da filtri ed impedendo il passaggio di qualsiasi istruzione, diretta all&#8217;unità di memorizzazione, atta a trasferire dati su di essa. I dispositivi hardware sono certamente da preferirsi a quelli software poichè non possono essere rilevati direttamente e, soprattutto, non possono essere ingannati.</p>
<h3>La manipolazione dei dati</h3>
<p>Per lo svolgimento delle indagini è necessario accedere ai dati sequestrati e questo è sempre preferibile farlo su una copia fedele ove possibile. Ove non sia possibile effettuare delle copie fedeli è sempre indispensabile ricorrere all&#8217;uso dei write blocker.</p>
<p>Che si lavori su una copia o sull&#8217;originale è comunque sempre necessario intraprendere delle azioni che garantiscano che i dati non vengano manipolati e che rendendo possibili futuri controlli di integrità dei dati stessi. Prima di iniziare una qualunque operazione sui dati è, quindi, opportuno procedere a generare l&#8217;<em>impronta digitale</em> di ogni singolo file e dell&#8217;intera unità di memorizzazione. Quest&#8217;ultima accortezza è fondamentale poichè generando soltanto le impronte dei file non rende possibile un controllo sui settori dell&#8217;unità occupati precedentemente da file che sono poi stati cancellati dal proprietario.</p>
<p>La generazione dell&#8217;impronta digitale deve avvenire attraverso algoritmi di hashing che siano riconosciuti come sicuri al fine di impedire che vengano sollevate obiezioni che invalidino la totalità delle indagini. Nel momento in cui scrivo questo articolo gli algoritmi di hashing considerati sicuri sono SHA-1 (anche se nel 2005 venne trovato un attacco sulle collisioni che comunuque è ancora inattuabile) oppure SHA-2.</p>
<p>Prese queste accortezze si possono effettuare tutte le operazioni che si ritengono necessarie alle indagini e che portanno essere poi ripetute, qualora si lavori su delle copie, anche sugli originali. Grazie alle impronte hash, nessuno potrà eccepire che si tratti di una manipolazione.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=150</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Sessioni e web clustering: l&#8217;uso di Memcached e di MySql</title>
		<link>http://www.zazy.it/wp/?p=96</link>
		<comments>http://www.zazy.it/wp/?p=96#comments</comments>
		<pubDate>Mon, 12 Jul 2010 17:12:46 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sessioni]]></category>
		<category><![CDATA[web cluster]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=96</guid>
		<description><![CDATA[In tutte quelle realtà in cui si è fatto ricorso al web clustering una delle prime problematiche da affrontare prima di implementare un&#8217;applicazione web riguarda la persistenza e la condivisione dei dati delle sessioni iniziate dagli utenti. Nel web clustering non ci si può aspettare che il load balancer rediriga una connessione sempre verso lo]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">In tutte quelle realtà in cui si è fatto ricorso al web clustering una delle prime problematiche da affrontare prima di implementare un&#8217;applicazione web riguarda la persistenza e la condivisione dei dati delle sessioni iniziate dagli utenti.</p>
<p style="text-align: left;">Nel web clustering non ci si può aspettare che il load balancer rediriga una connessione sempre verso lo stesso server. La cosa, anzi, è piuttosto improbabile e le configurazioni basate su IP sono ormai da considerarsi assolutamente obsolete ed inadatte all&#8217;attuale conformazione degli ISP. Questo comportamento causa problemi per chi avesse necessità di conservare i dati di una sessione.</p>
<p style="text-align: left;">Prendiamo ad esempio una configuarzione con due server, <em>Ciccio</em> e <em>Polenta</em>, connessi alla rete WAN tramite lo stesso balancer (fig. 1).</p>
<p style="text-align: left;">
<div class="mceTemp mceIEcenter" style="text-align: left;">
<dl id="attachment_124" class="wp-caption aligncenter" style="width: 460px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-124" title="Configurazione multiserver con load balancer" src="http://www.zazy.it/wp/wp-content/uploads/2010/07/multiserver-loadbalancer.png" alt="" width="450" height="288" /></dt>
<dd class="wp-caption-dd"><strong><em>fig. 1</em></strong> &#8211; Configurazione multiserver con load balancer</dd>
</dl>
</div>
<p style="text-align: left;">Immaginiamo che un client voglia eseguire un processo di autenticazione sul nostro server Web. Dopo aver visualizzato la pagina contente il form con i campi da riempire, l&#8217;utente cliccherà su una qualche forma di pulsante che permetterà al browser di inoltrare una richiesta HTTP passando al server i valori immessi per i campi di login e password. Supponiamo che la richiesta da parte del browser venga inoltrata, dal balancer, verso il server Ciccio. Ciccio provvederà a controllare i dati inviatigli dal client e, se corretti, procederà ad iniziare una sessione, comunicando al client il successo dell&#8217;operazione.</p>
<p style="text-align: left;">Successivamente all&#8217;autenticazione l&#8217;utente clicca sul link che gli permette di visualizzare il suo profilo. Il browser prepara allora una nuova richiesta che verrà presentata sull&#8217;interfaccia WAN del nostro server web. Il balancer, però, questa volta redirige la richiesta verso il server Polenta.</p>
<p style="text-align: left;">Il comportamento di default del PHP è quello di memorizzare i dati della sessione all&#8217;interno di un file locale al server. Tale file viene creato, in genere, quando viene avviata la sessione. Di conseguenza solo Ciccio è a conoscenza dei dati memorizzati nella sessione iniziata dall&#8217;utente e quando la richiesta di visualizzare il profilo arriva al server Polenta questi non ha idea di come rispondere alla richiesta poichè non sa gestire il session_id inviatogli dal browser.</p>
<h2 style="text-align: left;">Memcached<sup>[<a href="#php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-1" class="footnoted" id="to-php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-1">1</a>]</sup></h2>
<p style="text-align: left;">Una soluzione al problema può venire dall&#8217;uso di <strong>Memcached</strong>. Memcached è un sistema di caching distribuito open source ad alte  prestazioni che permette di salvare delle informazioni asociandole ad una chiave univoca. Memcached si comporta esattamente come una memoria cache volatile: se il processo server dovesse morire portando giù il servizio <strong>tutte</strong> le informazioni memorizzate in Memcached andranno perse.</p>
<p style="text-align: left;">Per alcune applicazioni questo tipo di &#8220;<em>rischio&#8221;</em> può essere accettabile, soprattutto se si considera che Memcached può essere installato senza toccare una riga di codice dell&#8217;applicazione PHP, andando a sostituire integralmente il sistema di gestione delle sessioni di default.</p>
<h4 style="text-align: left;">Configurazione di PHP per l&#8217;uso di Memcached come handler di default per la sessione</h4>
<p style="text-align: left;">La configurazione di Memcached attraverso il file php.ini è molto semplice. Per configurare gli handler di default della sessione è sofficiente modificare, dopo aver installato Memcached da qualche parte sulla rete, due parametri: <strong>session.save_handler</strong> e <strong>session.save_path</strong>:</p>
<pre>session.save_handler=memcached
session.save_path="tcp://10.10.10.1:11211"</pre>
<p style="text-align: left;">L&#8217;indirizzo IP 10.10.10.1 si riferisce al server sul quale è stato installato Memcached, mentre 11211 è la porta di ascolto del server.</p>
<p style="text-align: left;">Alternativamente si possono scrivere degli handler di sessione personalizzati utilizzando la funzione PHP <strong>session_set_save_handler()</strong><sup>[<a href="#php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-2" class="footnoted" id="to-php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-2">2</a>]</sup>. In questo caso per accedere al server di Memcached si può far ricorso alle API per PHP di Memcached ampiamente documentate anche <a href="http://it.php.net/manual/en/book.memcached.php" target="_blank">sul sito di PHP</a>.</p>
<p style="text-align: left;">L&#8217;uso degli handler di salvataggio della sessione in maniera trasparente attraverso il PHP è sì molto veloce da realizzare ma si tratta comunque di una soluzione non scalabile e poco mantenibile. Se si dovesse, ad esempio, rendere necessario cambiare la porta di ascolto di Memcached sarà altresì indispensabile modificare tutti i file php.ini di tutti i server coinvolti per rispecchiare la nuova situazione. Inoltre qualora si dovesse aggiungere un server al cluster ci si dovrà ricordare di modificare la configurazione di PHP altrimenti sarà difficile rendersi conto dell&#8217;errore prima che si verifichino pesanti disservizi.</p>
<h2 style="text-align: left;">Memcached + MySql</h2>
<p>Laddove l&#8217;applicazione PHP richieda una maggiore affidabilità circa le sessioni, è indispensabile avvalersi dell&#8217;appoggio di un database solido e performante come MySql. L&#8217;uso del database, però, apporta una forte latenza nella gestione delle sessioni.</p>
<p>Per evitare di sovraccaricare il server MySql e per eludere latenze che per grossi carichi di lavoro possono rivelarsi fatali, si può pensare di giungere ad una soluzione <em>ibrida</em> che preveda l&#8217;uso del database per una forte persistenza a cui si va ad affiancare l&#8217;uso di Memcached per effettuare il caching delle query così come schematizzato in fig. 2.</p>
<div id="attachment_129" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-129" title="multiserver-loadbalancer-memcached" src="http://www.zazy.it/wp/wp-content/uploads/2010/07/multiserver-loadbalancer-memcached.png" alt="Multiserver con Memcached e MySql" width="450" height="214" /><p class="wp-caption-text">fig. 2 - Web cluster con Memcached e MySql</p></div>
<p>In questo caso, però, non ci si può affidare a PHP per la gestione  delle sessioni ed è indispensabile scrivere degli handler personalizzati  scegliendo le adeguate strategie di caching oltre a dover gestire  l&#8217;indisponibilità del server di Memcached.</p>
<p>&#8212;&#8212;&#8212;</p>
<p style="text-align: left;"><ol class="footnotes">
	<li class="footnote" id="php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-1"><strong><sup>[1]</sup></strong> <a href="http://www.memcached.org/" target="_blank">Memcached</a> <a class="note-return" href="#to-php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-1">&#x21A9;</a></li>
	<li class="footnote" id="php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-2"><strong><sup>[2]</sup></strong> <a href="http://www.php.net/manual/en/function.session-set-save-handler.php" target="_blank">session_set_save_handler()</a> <a class="note-return" href="#to-php-sessioni-e-web-clustering-luso-di-memcached-e-di-mysql-n-2">&#x21A9;</a></li></ol>
</p>

]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox e la cache dei fogli di stile CSS</title>
		<link>http://www.zazy.it/wp/?p=89</link>
		<comments>http://www.zazy.it/wp/?p=89#comments</comments>
		<pubDate>Sun, 04 Jul 2010 21:17:27 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[firefox]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=89</guid>
		<description><![CDATA[Durante la mia attività di Web Master ho dovuto spesso lottare contro le politiche di caching dei vari browser. In molti casi era sufficiente cliccare sul pulsante &#8220;Aggiorna&#8221; del browser tenendo premuto il pulsante shift per costringere il browser ad eludere la cache ed a ricaricare incondizionatamente la pagina web e tutti i file ad]]></description>
			<content:encoded><![CDATA[<p>Durante la mia attività di Web Master ho dovuto spesso lottare contro le politiche di caching dei vari browser. In molti casi era sufficiente cliccare sul pulsante &#8220;Aggiorna&#8221; del browser tenendo premuto il pulsante <strong>shift</strong> per costringere il browser ad eludere la cache ed a ricaricare incondizionatamente la pagina web e tutti i file ad essa collegati.</p>
<p>Tramite il tag <strong>meta</strong> è possibile intervenire sulle politiche di caching del browser. Utilizzando ad esempio <strong>&lt;meta http-equiv=&#8221;expires&#8221; content=&#8221;sun, 4 jul 2010 23:00:00 GMT&#8221;&gt;</strong> è possibile costringere il browser a ricaricare la pagina a partire dalle ore 23 di domenica 4 luglio 2010. Se invece vogliamo che il caching venga disabilitato del tutto, possiamo utilizzare il tag <strong>&lt;meta http-equiv=&#8221;cache-control&#8221; content=&#8221;no-cache&#8221;&gt;</strong>.</p>
<p>Ciò che ci si aspetta, utilizzando il parametro <strong>no-cache</strong> della direttiva <strong>cache-control</strong>, è che il browser inoltri una richiesta al server ogni qual volta si ricarica la pagina. In <strong>Mozilla Firefox</strong> la pagina principale viene ricaricata ma non viene ricaricato il foglio di stile CSS nonostante questo sia stato modificato.</p>
<p>Sembrerebbe che Firefox utilizzi una strategia di caching particolarmente aggressiva per i fogli di stile e, per costringerlo a ricaricare il foglio di stile, è necessario effettuare numerosi aggiornamenti della pagina. Nemmeno tenendo premuto il tasto <em>shift</em> mentre si clicca sul pulsante <em>&#8220;</em>Aggiorna&#8221;.</p>
<p>Per eludere questo problema io ho utilizzato questo piccolo trucchetto. Supponiamo di avere un foglio di stile inserito in questo modo: <strong>&lt;link rel=&#8217;stylesheet&#8217; href=&#8217;http://www.zazy.it/stile.css&#8217;&gt;</strong>. Per costringere Firefox a ricaricare il foglio di stile è necessario fargli credere che si tratti di un foglio di stile generato da una pagina dinamica. Per fare questo basta semplicemente aggiungere un <strong>?</strong> (punto interrogativo) alla fine del nome del file css così da trasformare il tag di prima in <strong>&lt;link rel=&#8217;stylesheet&#8217; href=&#8217;http://www.zazy.it/stile.css?&#8217;&gt;</strong>.</p>
<p>In questo modo il foglio di stile verrà ricaricato ogni volta che viene caricata la pagina. Ricordiamoci, però, di rimuovere quel punto interrogativo aggiuntivo quando abbiamo finito con le nostre modifiche, così da evitare inutili richieste al server con inutile spreco di banda <img src='http://www.zazy.it/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>

]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=89</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Aggiornato] Il mistero delle &#8220;tacche&#8221; dell&#8217;iPhone</title>
		<link>http://www.zazy.it/wp/?p=71</link>
		<comments>http://www.zazy.it/wp/?p=71#comments</comments>
		<pubDate>Sat, 03 Jul 2010 14:19:19 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ios 4]]></category>
		<category><![CDATA[iphone 4]]></category>
		<category><![CDATA[ricezione]]></category>
		<category><![CDATA[segnale]]></category>
		<category><![CDATA[tacche]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=71</guid>
		<description><![CDATA[A seguito delle vostre segnalazioni rimuovo questo post. Ho infatti dato un&#8217;occhiata al codice di Android ed in particolar modo alla funzione updateSignalStrength() ho potuto constatare che anche Android ha una politica simile a quella di Apple per quanto riguarda il numero di tacche da mostrare. Leggendo le righe da 993 a 1004 e facendo]]></description>
			<content:encoded><![CDATA[<p>A seguito delle vostre segnalazioni rimuovo questo post. Ho infatti dato un&#8217;occhiata al codice di Android<sup>[<a href="#il-mistero-delle-tacche-delliphone-n-1" class="footnoted" id="to-il-mistero-delle-tacche-delliphone-n-1">1</a>]</sup> ed in particolar modo alla funzione updateSignalStrength() ho potuto constatare che anche Android ha una politica simile a quella di Apple per quanto riguarda il numero di tacche da mostrare. Leggendo le righe da 993 a 1004 e facendo un rapido calcolo è possibile vedere che Android mostra segnale pieno da -89 dBm fino a -51 dBm.</p>
<p>Sembra essere prassi comune mostrare segnale pieno già da una misurazione di circa -90 dBm distribuendo le rimanenti &#8220;tacche&#8221; per i valori tra -131 dBm e -90 dBm. La spiegazione sembra sia da ricercarsi nelle &#8220;intenzioni&#8221; della visualizzazione. Mostrare segnale pieno serve ad indicare all&#8217;utente che la rete a cui ci si è agganciati può essere utilizzata senza problemi.</p>
<p>Resta comunque un fatto oggettivo che impugnando il telefono con la mano sinistra la qualità del segnale crolla ad un punto tale da impedire finanche una conversazione, così come mostrato nel video qui sotto.</p>
<p style="text-align: center;"><object style="width: 425px; height: 350px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="play" value="false" /><param name="src" value="http://www.youtube.com/v/DmDtOao36Mc" /><embed style="width: 425px; height: 350px;" type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/DmDtOao36Mc" play="false"></embed></object></p>
<p style="text-align: left;">Come detto anche da Steve Jobs <strong>tutti</strong> i telefoni hanno dei punti critici dovuti alla posizione dell&#8217;antenna interna. Il mio HTC Magic, ad esempio, ha l&#8217;antenna posizionata sul lato inferiore del telefono ed il segnale decade con qualunque mano tenga il telefono. Quello che Jobs si è dimenticato di dire è che nessun telefono (o almeno nessuno che io conosca) ha una simile caduta di segnale.</p>
<p>&#8212;&#8212;&#8211;</p>
<ol class="footnotes">
	<li class="footnote" id="il-mistero-delle-tacche-delliphone-n-1"><strong><sup>[1]</sup></strong> http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=services/java/com/android/server/status/StatusBarPolicy.java;h=3b0c436bf9b9cb71b1f057b4904c660318e20eff;hb=HEAD#l996 <a class="note-return" href="#to-il-mistero-delle-tacche-delliphone-n-1">&#x21A9;</a></li></ol>


]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone 4&#8230; luccica ma non è oro</title>
		<link>http://www.zazy.it/wp/?p=58</link>
		<comments>http://www.zazy.it/wp/?p=58#comments</comments>
		<pubDate>Tue, 29 Jun 2010 17:05:52 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[iphone 4]]></category>
		<category><![CDATA[problemi]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=58</guid>
		<description><![CDATA[Che l&#8217;iPhone 4 fosse partito col piede sbagliato lo si era capito sin dalla sua presentazione, quando Steve Jobs fu costretto a chiedere a tutti di spegnere i propri portatili poichè l&#8217;iPhone non riusciva a connettersi alla rete. Ora però, sono gli utenti ad evidenziare i primi problemi, alcuni dei quali non sono di poco]]></description>
			<content:encoded><![CDATA[<p>Che l&#8217;iPhone 4 fosse partito col piede sbagliato lo si era capito sin dalla sua presentazione, quando Steve Jobs fu costretto a chiedere a tutti di spegnere i propri portatili poichè l&#8217;iPhone non riusciva a connettersi alla rete.</p>
<p>Ora però, sono gli utenti ad evidenziare i primi problemi, alcuni dei quali non sono di poco conto, soprattutto se si va a soppesare il modo in cui Apple ha affrontato la situazione.</p>
<p>Il primo e più evidente riguarda la ricezione. La particolare posizione dell&#8217;antenna e soprattutto il fatto che questa è assolutamente priva di protezione di qualunque genere, espone l&#8217;iPhone ad una terribile caduta della qualità del segnale quando il terminale viene impugnato con la mano sinistra. Un video pubblicato da IGM su youtube mostra come questo problema renda la vita pressochè impossibile soprattutto ai mancini.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/03PQyWp0mWE&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/03PQyWp0mWE&amp;feature"></embed></object></p>
<p>Come si può vedere dal video nell&#8217;istante in cui si impugna l&#8217;iPhone con la mano sinistra e si va a coprire l&#8217;antenna posta nell&#8217;angolo in basso a sinistra la conversazione viene troncata a causa della caduta di ricezione.</p>
<p>Il blog <a href="http://www.boygeniusreport.com/2010/06/29/leaked-apples-internal-iphone-4-antenna-troubleshooting-procedures/" target="_blank">BGR ha pubblicato un estratto</a> della procedura che Apple ha imposto ai suoi customer care. In pratica ai suoi dipendendti ha imposto prima di tutto di utilizzare un tono sempre cordiale e di ripetere fino alla nausea al &#8220;contestatore&#8221;, qualunque siano le sue domande, che questo è il miglior iPhone di sempre e che per risolvere il problema sarebbe opportuno utilizzare una cover in gomma o in plastica così da evitare che la pelle tocchi l&#8217;antenna.</p>
<p>A peggiorare (a mio avviso) la situazione si ci è messa la presunzione arrogante di Steve Jobs il quale <a href="http://www.macrumors.com/2010/06/24/steve-jobs-describes-iphone-4-signal-strength-a-non-issue/" target="_blank">rispondendo</a> alla domanda di un cliente ha detto &#8220;Sei tu a tenerlo nel modo sbagliato. Non tenerlo più così&#8221;. Bisognerà chiedere a Jobs quale sia il modo corretto per tenere il telefono.</p>
<p>Personalmente mi basterebbe questo per abbandonare il marchio della mela a causa delle sue politiche ma sembra che la gente compri l&#8217;iPhone proprio perchè tutti comprano l&#8217;iPhone&#8230; paradossale!</p>
<p>Diversi utenti hanno lamentato un malfunzionamento del sensore di prossimità, ossia di quell&#8217;agglomerato di circuiti che dovrebbe disattivare le funzionalità del touch screen quando questo viene avvicinato all&#8217;orecchio. Questa strategia serve ad evitare che vengano attivate inavvertitamente delle funzioni a causa del contatto del touch screen con la pelle dell&#8217;orecchio o del viso. Quando il sensore di prossimità non funziona il touch screen resta attivo e così è probabile che vengano inviati sms o inoltrate chiamate senza accorgersene.</p>
<p>Vacilla anche il tanto decantato <strong>retina display</strong> poichè è stata riscontrata l&#8217;apparizione di macchie giallastre molto vistose che rovinano l&#8217;immagine del display. Fortunatamente sembra che queste macchie svaniscano dopo qualche giorno di utilizzo dell&#8217;iPhone.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTC Magic 32B (Versione Vodafone Italia)</title>
		<link>http://www.zazy.it/wp/?p=103</link>
		<comments>http://www.zazy.it/wp/?p=103#comments</comments>
		<pubDate>Fri, 25 Jun 2010 16:09:52 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[Recensioni]]></category>
		<category><![CDATA[32B]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[HTC]]></category>
		<category><![CDATA[Magic]]></category>
		<category><![CDATA[Recensione]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=103</guid>
		<description><![CDATA[Dovevo cambiare il mio vecchio Palm Treo 500 che tanto mi aveva deluso ed ecco che mi imbatto nell&#8217;allora nuovo nato di casa HTC, primo produttore ad avere avuto, a mio avviso, il coraggio e la saggezza di utilizzare il sistema operativo Android di casa Google. Avevo già sentito parlare del suo predecessore &#8220;Dream&#8221; e,]]></description>
			<content:encoded><![CDATA[<p>Dovevo cambiare il mio vecchio Palm Treo 500 che tanto mi aveva  deluso ed ecco che mi imbatto nell&#8217;allora nuovo nato di casa HTC, primo  produttore ad avere avuto, a mio avviso, il coraggio e la saggezza di  utilizzare il sistema operativo Android di casa Google.</p>
<p>Avevo già  sentito parlare del suo predecessore &#8220;Dream&#8221; e, a parte l&#8217;aspetto non  proprio gradevole (per i miei gusti), mi aveva fortemente incuriosito  così quando a giugno 2009 la Vodafone mi ha proposto questo prodotto a  360 euro e a rate da 9 euro al mese&#8230; non ho resistito alla tentazione e l&#8217;ho comprato.</p>
<h2>Hardware</h2>
<p>Il Magic è dotato del processore Qualcomm MSM7201a a 528 Mhz<sup>[<a href="#htc-magic-32b-version-vodafone-italia-n-1" class="footnoted" id="to-htc-magic-32b-version-vodafone-italia-n-1">1</a>]</sup>, 512 MB di ROM e 192 MB di RAM, uno schermo TFT con risoluzione HVGA 320&#215;480, GPS integrato, Wi-Fi, Bluetooth, fotocamera da 3,2 megapixel, bussola e gli ormai immancabili G-Sensor. In pratica, a parte la ROM di 512 MB ed una batteria dalle prestazioni leggerissimamente migliori, è in tutto e per tutto identico all&#8217;HTC Dream di qualche anno addietro.</p>
<p>Una cosa che non è affatto chiara consultando il portale di HTC, è che di questo smartphone ne esistono due versioni esteticamente identiche. Una versione, denominata Sapphire/32B, equipaggiata con 192 MB di RAM ed una versione, denominata Ebi1/32A, con 256 MB di RAM. Una differenza non da poco, soprattutto se si pensa che sui terminali 32B non è possibile far girare la tanto vantata interfaccia utente sviluppata da HTC e denominata HTC Sense UI.</p>
<p>Posso affermare che, dal mio punto di vista, il Magic 32B è stato un po&#8217; abbandonato da HTC.</p>
<h2>Confezione</h2>
<p>Il  Magic venduto da Vodafone si presenta in una scatola dalle dimensioni  piuttosto contenute in cui trovere, oltre al telefono ed alla batteria, il  caricabatterie, degli auricolari stereo, un manualetto utile solo a chi  non ha mai usato un terminale touch, una tasca in similpelle marchiata  HTC, il cavetto USB per il PC ed una praticissima scheda di memoria da 8  Gb.</p>
<h2>Aspetto esteriore</h2>
<p>A differenza del Dream, l&#8217;HTC Magic ha un aspetto molto gradevole ed un design morbido e  delicato che gli conferisce una forma che non infastidisce quando lo si  tiene nella tasca dei jeans. Non è molto ingombrante come potrebbe  esserlo un iPhone e con i suoi 119 grammi batteria compresa lo si può  considerare piuttosto leggero per il suo genere.</p>
<h2>Scocca ed  aspetto esteriore</h2>
<p>Non appena ci si mettono sopra le mani (nel  senso fisico della parola) ci si rende subito conto della qualità del  prodotto. Non solo le plastiche sono di qualità eccellente ma anche il  loro assemblaggio trasmette un&#8217;idea di robustezza. A &#8220;torcerlo&#8221; non si  sentono scricchiolii e la tenuta degli agganci sembra essere molto  solida.<br />
I pulsanti sono in leggero rilievo rispetto alla scocca e  sono piuttosto piccoli ma anche chi ha un pollice &#8220;ingombrante&#8221; come il  mio riesce a premerli comodamente.</p>
<h2>Audio</h2>
<p>La qualità  dell&#8217;audio di questo terminale mi ha davvero stupito. In ricezione offre  un suono pieno e robusto e anche il nostro interlocutore potrà udirci  senza troppi sforzi anche in ambienti piuttosto rumorosi.<br />
Connettendo le cuffie stereo fornite in dotazione non si rimpiange di aver  lasciato a casa l&#8217;iPod <img src='http://www.zazy.it/wp/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2>Schermo</h2>
<p>Il Magic è dotato di  un ampio schermo da 3 pollici di tipo capacitivo che reagisce molto bene  al tocco. Per chi usa questo tipo di schermo per la prima volta  necessiterà di un po&#8217; di pratica per prenderci la mano.<br />
La visione è  decisamente ottima anche sotto i raggi diretti del sole e resta tale  indipendentemente dall&#8217;angolazione con cui lo si guarda. I colori sono  brillanti e l&#8217;illuminazione è potente ma molto morbida e quindi non  infastidisce gli occhi (ed io sono fotofobico!)</p>
<h2>Durata batterie</h2>
<p>All&#8217;inizio  la batteria dura decisamente poco, anche perchè è molto difficile non  mettersi ad esplorare e testare tutte le funzioni del telefono. Per  arrivare ad ottenere il massimo delle prestazioni saranno necessari  circa 15/20 cicli di ricarica.<br />
Configurando bene il telefono ed evitando  di attivare servizi inutili, sono riuscito ad ottenere un&#8217;autonomia di 20 ore continuate con un uso &#8220;modesto&#8221; delle sue funzioni  mentre si  riducono a 12 ore o meno quando se ne fa un uso intenso, soprattutto  quando si lasciano accesi Wi-Fi e ricevitore GPS.</p>
<h2>User  experience</h2>
<p>La così detta &#8220;user experience&#8221; è ormai ciò che più  conta quando si utilizzano terminali così complessi. Il feeling con il  Magic non è elevatissimo e di sicuro non arriva ai livelli di iPhone ma è  decisamente gradevole e considerando che Android non è un sistema per  il solo divertimento lo collocherei in una fascia medio-alta/alta. A  volte il sistema tarda a reagire al tocco il che ci induce a ripetere  l&#8217;azione con risultati non sempre gradevoli ma il suo comportamento  globale è decisamente buono, soprattutto se si passa ad Android 1.6.<br />
Peccato  non sia previsto un sensore per disattivare lo schermo quando questo è  vicino all&#8217;orecchio perchè mentre si è in conversazione può capitare che  si faccia qualcosa senza accorgersene.</p>
<h2>Pecche</h2>
<p>La più  grave riguarda, a mio avviso, l&#8217;impossibilità di utilizzare la sveglia a  terminale spento. Questo vi costringe a tenere il telefono acceso sul  comodino qualora fosse necessario e, anche se è possibile attivare la  modalità aereo spegnendo tutte le trasmissioni radio, la cosa non mi  piace affatto.</p>
<p>La fotocamera è piuttosto deludente. A causa del modo in cui è montata, il vetrino (o forse è meglio dire &#8220;la plastica&#8221;) frontale si sporca facilmente ed è necessario pulirlo molto spesso. Le foto non sono eccezionali e spesso i colori risultano un po&#8217; &#8220;annebbiati&#8221;.</p>
<p>Altro aspetto <strong>molto deludente</strong> è la capacità di catturare video. Il Magic, infatti, riesce a catturare appena 10 fotogrammi al secondo il che risulta in un video molto scattoso, poco definito e che mostra &#8220;scie&#8221; anche con leggeri movimenti.</p>
<h2>Conclusioni</h2>
<p>Rinunciando a tutti gli aspetti ludici il Magic è un terminale  decisamente valido anche se non riuscirà di certo a far tremare iPhone.  Android è ancora giovane e si vede ma la sua evoluzione è rapida e le  migliorie evidenti.<br />
E&#8217; un terminale che consiglio a chi non vuole  avere tra le mani un giocattolo per bambini ma un telefono serio con un  sistema robusto, pensato per esserci utile e non solo per essere  esteticamente gradevole.</p>
<p>&#8212;&#8212;&#8212;</p>
<ol class="footnotes">
	<li class="footnote" id="htc-magic-32b-version-vodafone-italia-n-1"><strong><sup>[1]</sup></strong> <a href="http://pdadb.net/index.php?m=cpu&amp;id=a7201a&amp;c=qualcomm_msm7201a" target="_blank">http://pdadb.net/index.php?m=cpu&amp;id=a7201a&amp;c=qualcomm_msm7201a</a> <a class="note-return" href="#to-htc-magic-32b-version-vodafone-italia-n-1">&#x21A9;</a></li></ol>


]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=103</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google rilascia il codice di Froyo</title>
		<link>http://www.zazy.it/wp/?p=41</link>
		<comments>http://www.zazy.it/wp/?p=41#comments</comments>
		<pubDate>Sun, 20 Jun 2010 21:09:21 +0000</pubDate>
		<dc:creator>zazy</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[2.2]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.zazy.it/wp/?p=41</guid>
		<description><![CDATA[Da Mountain View viene finalmente rilasciato il tanto atteso Froyo, noto ai più come Android 2.2. Questa nuova release accontenta un po&#8217; tutti: gli amanti dell&#8217;estetica potranno godere del nuovo stile grafico della home; gli scontenti delle prestazioni potranno gioire per il nuovo compilatore JIT per Dalvik; gli sviluppatori avranno a disposizione API migliorate e]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-45" title="froyo" src="http://www.zazy.it/wp/wp-content/uploads/froyo.png" alt="" width="200" height="168" />Da Mountain View viene finalmente rilasciato il tanto atteso Froyo, noto ai più come Android 2.2. Questa nuova release accontenta un po&#8217; tutti: gli amanti dell&#8217;estetica potranno godere del nuovo stile grafico della home; gli scontenti delle prestazioni potranno gioire per il nuovo compilatore JIT per Dalvik; gli sviluppatori avranno a disposizione API migliorate e nuovi servizi. Ma vediamo bene nel dettaglio le novità più interessanti.<span id="more-41"></span></p>
<h2>Interfaccia utente</h2>
<p><img class="size-full wp-image-48 alignright" title="Froyo home screen" src="http://www.zazy.it/wp/wp-content/uploads/foyo_new_home.png" alt="" width="250" height="417" />La nuova home presenta uno stile grafico più accattivante ed una maggiore attenzione verso gli utenti più esigenti. Alcune applicazioni, come il browser ed il telefono, hanno un&#8217;area dedicata posta nella parte bassa dello schermo sempre accessibile da qualunque schermata della home.</p>
<p>Dopo diversi tentativi, più o meno maldestri, da parte di coraggiose software house, per gli <strong>utenti aziendali</strong> arriva un supporto per Exchange degno di tale nome. Grazie al pin alfanumerico e grazie alla distruzione dei dati da remoto, smarrire lo smartphone Android non comprometterà i dati aziendali. E&#8217; inoltre stato aggiunto il supporto per il calendario di Exchange ed una migliore integrazione con il client di posta elettronica.</p>
<p>Per chi utilizza la tastiera virtuale è ora possibile configurarla con più di un linguaggio e sarà possibile saltare da una configurazione all&#8217;altra semplicemente strisciando con il dito sulla barra spaziatrice. Il cambio di configurazione non riguarda solo il layout della tastiera ma anche il dizionario.<!--more--></p>
<h2>Prestazioni</h2>
<p>Gli sforzi degli sviluppatori si sono concentrati per lo più  sull&#8217;ottenere maggiori prestazioni da un sistema le cui scelte  progettuali ed architetturali sono state molto criticate sin  dall&#8217;inizio.</p>
<p>Secondo quanto affermato dal capo del team di sviluppo Xavier Ducrohet l&#8217;introduzione del compilatore JIT per Dalvik (la JVM di Android) promette di ottenere, dalle applicazioni che fanno uso intensivo della CPU, un incremento medio di prestazioni fino a 5 volte superiori rispetto aquelle ottenute da Android 2.1. Le prestazioni sono state misurate utilizzando diversi software di benchmark. Il risultato migliore è stato offerto da Linpack secondo il quale si avrebbe un incremento di prestazioni che sfiora il 600% mentre il risultato &#8220;peggiore&#8221; è stato presentato da CaffeineMark secondo il quale l&#8217;incremento sarebbe &#8220;soltanto&#8221; di poco superiore al 450%.</p>
<p>Maggiori prestazioni dovrebbero arrivare anche dal browser che finora ha sempre deluso. Nella nuova versione viene infatti utilizzato il nuovo motore V8 che dovrebbe consentire prestazioni migliori soprattutto per pagine che fanno un uso intensivo di JavaScript.</p>
<p>Ritocchi anche per il modulo di gestione della memoria del kernel che dovrebbero consentire una maggiore fluidità nell&#8217;esecuzione di applicazioni in particolar modo su quei terminali con poca memoria RAM (come il pionieristico HTC G1 ed il suo fratellino HTC Magic).</p>
<p>Migliorate sembrano essere anche le prestazioni della videocamera. Grazie alle nuove API il framerate passa da un massimo di 10 fotogrammi al secondo ad un massimo di 20 concedendo prestazioni quasi raddoppiate.</p>
<h2><!--more-->Novità per gli sviluppatori</h2>
<p>Molto interessanti appaiono le novità apportate al framework di Android. Prima fra tutte spicca la possibilità di installare le applicazioni su una memoria esterna al telefono, permettendo così di preservare spazio per i propri dati. Questa opportunità è stata offerta in passato da applicativi di terze parti (come Apps2SD) che causavano non pochi problemi soprattutto con le ROM moddate. La scelta di supportarlo in maniera nativa accoglie le tante lamentele sollevate soprattutto dai possessori del G1 che proponeva uno spazio dedicato alle apps piuttosto limitato.</p>
<p>Il servizio di <strong>data backup</strong> offre un metodo facile e veloce per salvare le impostazioni delle applicazioni. Questo permette di ripristinare rapidamente lo stato dello smartphone in caso di wipe o di reinstallazione di un&#8217;applicazione. Il servizio non opera in maniera indiscriminata ma dovranno essere le applicazioni ad attivarlo. Gli amanti della privacy dovranno stare attenti alla scelta degli applicativi da installare.</p>
<p>Un altro passo viene mosso per andare incontro alle esigenze di chi sviluppa applicativi basati su OpenGL. Nelle nuove API, oltre ad avere le OpenGL ES 2.0, troviamo utility e metodi per la compressione delle texture e nuove funzioni per la manipolazione delle immagini in formato YUV e la loro compressione in JPEG.</p>
<p><!--more--></p>
<h2>Piattaforma</h2>
<p>Nella piattaforma di Android vengono introdotte nuove tecnologie per migliorare la multimedialità e, soprattutto, l&#8217;uso del bluetooth.</p>
<p>Per quanto riguarda la gestione dei file multimediali al già ben rodato OpenCore viene affiancato il framework Stagefright che supporta sia la riproduzione di file locali che lo streaming progressivo tramite HTTP.</p>
<p>Per il bluetooth vengono introdotte la possibilità di condividere i contatti con altri telefoni e troviamo anche un miglioramento per quel che riguarda la compatibilità con le periferiche audio come auricolari e kit vivavoce. Ma la novità più importante riguarda la possibilità di effettuare chiamate vocali tramite l&#8217;auricolare bluetooth, anche se non è ancora chiaro quali linguaggi siano supportati e quali siano le eventuali limitazioni.</p>
<p>Introdotta anche la possibilità di utilizzare uno smartphone Android come <strong>hotspot wi-fi</strong>. Grazie a questa modalità lo smartphone Android potrà essere condiviso tra massimo 8 periferiche che potranno utilizzarlo, grazie al supporto per il tethering nativo, per accedere ad internet. Unica pecca di questa modalità è l&#8217;enorme quantità di energia richiesta ad un terminale non concepito per tale scopo. Impossibile impedire alla batteria di scaricarsi in breve tempo (da alcuni test sembrerebbe fino ad un max di 4 ore su un HTC Nexus One) senza collegare lo smartphone ad una fonte di energia come un caricabatterie o una porta USB. In quest&#8217;ultimo caso, però, un uso intensivo della connessione da parte dei terminali collegati allo smartphone, rischia di surriscaldare lo smartphone con tutte le conseguenze del caso.</p>

]]></content:encoded>
			<wfw:commentRss>http://www.zazy.it/wp/?feed=rss2&#038;p=41</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

