martedì 27 aprile 2010

BioChip: il futuro dei microprocessori è nel DNA


Nel lontano 1994 uno scienziato Californiano, tale Leonard Adleman, ispirato da un libro sperimentò con successo la risoluzione di problemi complessi tramite l'utilizzo di molecole organiche similmente impiegate come hardware e software.

Si immagini sostanzilalmente il DNA come un software (insieme di istruzioni eseguibili in grado di processare dati) e gli enzimi come hardware (le risorse a cui il software attinge per svolgere le proprie funzioni): il risultato è quello di una unità computazionale (v. Computer) organica. La cosa davvero incredibile, al di là del suggestivo utilizzo di una molecola vecchia come il mondo (forse anche più) sono le prestazioni: 100.000 volte più veloce del più veloce processore arttualmente disponibile, capace cioè di effettuare calcoli 330 trilioni al secondo (tanto per intenderci, un trilione = 10^12 ossia 1.000.000.000.000), con un parallelismo reale impensabile per un procerssore tradizionale. E stiamo parlando di un prototipo di prototipo.

Già ora questo tipo di biomachina è stato ulteriormente perfezionato, rendendo il DNA autonomo (ossia senza bisogno di impèiego di enzimi). I vantaggi sarebbero rivoluzionari: innanzitutto la materia prima, ossia il DNA, si trova ovunque, ce n'è tantissimo, produrlo non costa nulla (le vostre cellule, in questo momento ne stanno producendo a pacchi). Anche le sostanzxe di scarto sarebbero assolòutamente biodegradibili (avete mai visto una discarica di DNA vecchio?). Le potenzialità, praticamente infinite, anche oltre il ristretto campo dell'informatica: una molecola di questo tipo, cioè organica, è naturalemnte affine ai tessuti viventi, rendendola adatta all'utilizzo medico, in particolare nella ricerca contro il cancro.

Che sia il fuoco di prometeo del terzo millennio?

sabato 24 aprile 2010

[Wii] Come avviare il backup/iso di Monster Hunter 3 Tri PAL


Chi di voi avesse tentato di far partire Monster Hunter 3 con un qualsiasi loader, sia esso USB Loader GX, NeoGamma o WiiFlow, avrà sicuramente riscontrato un problema di freezing, ossia alla schermata "inizia partita", dopo aver premuto A, il gioco si blocca producendo un beep ininterrotto.

Su internet girano milioni di ipotetiche soluzioni che si basano su aggiornamenti più o meno recenti del cIOS o del loader, oppure su strane impostazioni da settare al momento della scelta del gioco. In realtà queste soluzioni valgono solo per una strettissima minoranza, mentre la maggior parte degli utenti non riesce comunque a sbloccare il freezing.

Il punto infatti non è la versione del cIOS (che può essere 17-18-19), ma le sue impostazioni al momento dell'installazione:
  1. Scaricate un cIOS (link alla rev19,) (link megaupload)
  2. Copiate la cartellina cIOS revXXX all'interno della cartella apps della SD
  3. Fate partire l'installazione dall'HomeBrew Channel
  4. Al momento dell'installazione, scegliete nella prima schermata IOS249
  5. Nella seconda schermata, alla voce "Select base IOS version" selezionate IOS37 vXXXX
  6. Procedete con l'installazione da network (online)
  7. Attendete la fine dell'intallazione e riavviate la console
  8. Et Woilà, il vostro Monster Hunter 3 non si frizza più!
Ho testato personalmente questa configurazione e ha risolto tutti i miei problemi di freeze and beep.
Se qualcuno di voi ha delle domande, posti pure nei commenti.

don't worry, be Creative ;-D

venerdì 23 aprile 2010

Adobe blocca lo sviluppo dell'iPhone Packager incluso in Flash CS5

Vista l'impossibilità di programmare con tool esterni su iPhone, che Apple ha voluto a tutti i costi, Adobe ha deciso di tirare i remi in barca.
Stop dunque allo sviluppo dell'iPhone packager (che verrà comuqnue incluso nella release definitiva), che comporterà (penso io) una concentrazione di risorse su Air 2.0, attualmente utuilizzato come runtime su Android, il più diretto rivale di iPhone.
Da sviluppatore ammetto che mi dispiace non poter sviluppare su iPhone, ma se Apple continua a essere ciò che è, sono ben lieto di migrare su HTC-Android.

C'est la vié (si diceva così, vero?)

[Flash Platform] Open Screen Project™

Adobe è tutt'altro che rassegnata alla fine di Flash per mano di HTML5 (e Steve Jobs). Insieme ad altre 50 aziende leader nel settore delle telecomunicazioni (leggasi come smartiphone/tablet/pad) tra cui BBC, Sony, Nokya, LG, Motorola, Cisco, Google e HTC, ha dato vita al consorzio Open screen Project, una sorta di allenza per uniformare i prodotti delle aziende aderenti allo standard Flash Platform per lo sviluppo di Rich Internet Application (RIA).
Con Flash Platform si intende tutto l'insieme di tecnologie di sviluppo (Authoring tool e SDK) e runtime (Flash player 10.1 e Air 2.0) per la creazione/eseguzione di software più o meno implementari nella rete (dal sito in flashplayer al banale giochino siluppato in Air).
Personalmente da aspirante possessore di HTC non posso che essere contento e dare il mio supporto in qualità di sviluppatore.
Don't worry, be Creative!

martedì 20 aprile 2010

[Adobe CS5] La nuova Creative Suite 5 disponibile gia a Maggio


Chi pensava di dover attendere il prossimo autunno per mettere la mani nel nuovo gioiellino Adobe si troverà una bella sorpresa sotto l'ombrellone: pare infatti che Adobe sia intenzionata a giocare d'anticipo, rendendo disponibile la sua CS5  da metà Maggio, in Italia come nel mondo. Sul sito ufficiale viene infatti indicato come termine ultimo del preorder il 12 Maggio, e l'ultima metà dello stesso mese come periodo ipotizzato della spedizione.
Ricorso comunque a chiunque sia intenzionato all'acquisto di tale Suite che essa è compatibile solo con sistemi operativi a 64bit. I computer più obsoleti ( 3-4 anni fa) saranno quindi incapaci di eseguire il pacchetto di programmi. Fate attenzione quindi.

Che dire, spero di metterci le mani il prima possibile. Nel frattempo, don't worry, be creative! :)

domenica 18 aprile 2010

[Actionscript 3] XMLLoader: Creare una classe che legga e prepari XML

In questo post tratterò di come creare una classe Actionscript 3 che carichi da se un file xml, semplicemente passandole un path, e a caricamenti avvenuto generi un evento ACTION da me definito.


Questa classe non fornisce metodi e proprietà per il parsing (navigazione/lettura/scrittura), dato che quanto fornito di default da AS3 mi sembrava più che sufficiente. Vien da sè che chiunque decida di reimplementarla migliorandola è ben accetto.


La classe è composta solo da poche righe, tuttavia avendo notato che sono praticamente sempre le stesse in qualsiasi progetto Flash, ho preferito raggrupparle tutte in una classe definita. Questo ha snellito i miei progetti e permesso di gestire meglio tutto il procersso di caricmaneto dati da XML.

package _classi{

import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class LoadXML extends EventDispatcher{
public static var ACTION:String = "action";
public var xmlData:XML = new XML();
public var objPath:String;
public var isLoaded:Boolean = false;
private var urlR:URLRequest=new URLRequest();
private var urlLoader:URLLoader = new URLLoader();

public function LoadXML(path) {
objPath = path;
urlR.url=objPath;
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, errHandler);
urlLoader.addEventListener(Event.COMPLETE, xmlLoader);
urlLoader.load(urlR);
}
public function xmlLoader(e:Event = null):void {

xmlData=XML(urlLoader.data);
dispatchEvent(new Event(LoadXML.ACTION));
trace(xmlData.@src);
}

private function errHandler(e:IOErrorEvent):void {

trace("url errato");
trace(e.toString());
}

}
}

Innanzitutto definiamo il package (ossia la cartella all'interno della quale salvare la nostra classe. Io normalmente utilizzo "_classe", ma è ovvio che ognuno la definisce a suo piacimento e a seconda della sua posizione relativamente all'SWF che poi la utilizzerà.

Successivamente importiamo i package a noi necessari, quindi tutti gli eventi, il loader (colui che caricherà/conterrà fisicamente l'XML), l'URLRequest (che si occuperà di fornire al loader l'url da cui caricare).
package _classi{

import flash.events.*;


import flash.net.URLLoader;


import flash.net.URLRequest;
Ecco la prima nozuione interessante: definiamo la classe come estensione della EventDispatcher (traducibile all'incirca con 'Dispensatrice di Eventi').
Questa scelta è motivata dalla necessità di poter creare un evento proprio della classe che indichi quando l'XML è stato caricato. Eviteremo l'ingombro di dover definire ogni volta un ascoltatore dell'evento Event.COMPLETE nel nostro ipotetico SWF con tutti i relativi annessi e connessi (cosa fare se l'url dell'XML non esiste).
Ci basterà infatti definire nell'SWF target un ascoltatore all'evento ACTION, qui definito, senza preoccuparci di errori di url, che saranno tutti gestiti internamente alla classe.
public class LoadXML extends EventDispatcher{
public static var ACTION:String = "action";


public var xmlData:XML = new XML();//sarà il contenitore finale del nostro XML


public var objPath:String;//il path dell'XML


public var isLoaded:Boolean = false;//una variabile flag, che cambierà valore a caricamento ultimato


private var urlR:URLRequest=new URLRequest();//il contenitore dell'url dell'XML


private var urlLoader:URLLoader = new URLLoader();//il loader
Vediamo il costruttore. La prima azione che svolge è quella di associare assegnare alla proprietà url dell'oggetto URLRequest quanto passatogli nel parametro path. Assegnamo poi all'oggetto URLLoader (da non confondere con Loader) un ascoltatore che ci avvisi di eventuali errori nel url che andremo ad assegnargli e un ascoltatore che richiami la funzione xmlLoader, in caso l'url sia esatto, dell'avvenuto caricamento dei dati da XML.

Ora che tutti gli ascoltatori sono definiti, passiamo pure l'url all'oggetto URLLoader.
public function LoadXML(path) {
objPath = path;

urlR.url=objPath;


urlLoader.addEventListener(IOErrorEvent.IO_ERROR, errHandler);


urlLoader.addEventListener(Event.COMPLETE, xmlLoader);


urlLoader.load(urlR);
}
La funzione XMLLoader è quella che si occupa di 'travasare' i dati dall'URLLoader all'oggetto XML.

Ci si potrebbe chiedere come mai è necessario questo travaso, e perchè non far tutto con l'uno o con l'altro. Semplicemente perchè le proprietà/metodi dell'oggetto XML non sono sufficienti a caricare fisicamente i dati da file e le proprietà dell'oggetto URLLoader non sono sufficienti a gestire lalettura/navigazione dei dati una volta caricati. Dall'oltreonde, se così fosse, non avremo bisogno di implementare questa classe ;-)

Questo metodo viene richiamato a caricamento dati ultimato. Nella proprietà data dell'oggetto URLLoader avremo dunque, in sequenza binaria, il contenuto del nostro file XML. Da notare che ci saremo potuti appoggiare alla proprietà target dell'oggetto e, che tutti sappiamo puntare al 'target' dell'evento, e cioè urlLoader. O preferito tralasciare questa finezza per una maggiore chiareza del codice.

A questo punto utilizziamo il metodo dispatchEvent(), della classe EventDispatcher, che 'lancera' l'evento ACTION. Non abbiamo bisogno di instanziare un oggetto di questa classe per utilizzarla, in quanto ereditandola disponiamo gia adesso di tutti i suoi metodi/proprietà (esclusi i protected).

Questo metodo vuole come parametro l'oggetto Event che dall'esterno sarà il segnale che l'XML è stato caricato ed è pronto ad essere utilizzato. L'oggetto Event a sua volta vuole come parametro la stringa che lo identifica, notare che saràè la stessa proprietà statica che verrà utilizzata poi nell'ascoltatore che creeremo nell'SWF esterno.

Infine facciamo un trace del path dell'xml, a testimonianza che tutto è andato nel verso giusto.

public function xmlLoader(e:Event = null):void {

xmlData=XML(urlLoader.data);


dispatchEvent(new Event(LoadXML.ACTION));

trace(xmlData.@src);
}

Ora che la nostra classe, è completata, non ci resta che testarla all'interno di un qualsiasi SFW. Se tuttò va bene, otteremo un oggetto LoadXML la cui proprietà xmlData conterrà il nostro tanto agognato XML.

Spero di essere stato sufficientemente chiaro, buon lavoro a tutti in attesa del nostro prossimo tutorial! :D

lunedì 12 aprile 2010

Flash Player 10.1 su HD2 e Nexus One (HTC)

In questo video tratto da tv.adobe (network di informazione della Adobe) viene dimostrata l'efficienza del Flash Player 10.1.

domenica 11 aprile 2010

Petizione contro il nuovo contratto Apple-Sviluppatori

Il gran caos generato dalla nuova politica anti-concorrenziale della
Apple sta smuovendo molti su Internet.
Alcuni di loro hanno organizzato una petizione per la FCC (Federal Comunication Commission), nella quale le si richiede di intervenire sulle proposte di cambiamento nel contratto Apple-Developers (v. post).
Personlmante ho aderito subito e prego chiunque ne abbia voglia di farlo.

LINK: Online Petition

venerdì 9 aprile 2010

Flash CS5: Apple impedisce la compatibilità per iPhone

La telenovela iPhone/Apple sembra essere arrivata ALLA CONCLUSIONE ASSOLUTA: Apple, con la nuova release del SO di iPhone (la 4.0) ha infatti negato l'esecuzione di qualsiasi applicazione che non usi le API ufficiali. In pratica, qualsiasi eseguibile non sviluppato con le librerie Apple, nel linguaggio previsto da Apple e compilato come dice Apple sarà bloccato.
Evviva le piattaforme aperte, insomma.
Notizia

domenica 4 aprile 2010

Presentazione/Lancio Adobe Creative Suite 5 (cs5): -8

Il 12/04, a distanza di 18 mesi dal lancio della sua CS4, Adobe, nel pieno rispetto della tradizione, lancierà la sua neonata CS5. In realtà non è chiaro se al lancio corrisponderà la release nel mercato, tuttavia stando alle indiscrezioni della rete sembra che la Suite creativa 5 non vedrà il mercato prima del prossimo ottobre, visto lo stato di sviluppo ancora molto acerbo.
La nuova Cs5 promette di rimanere nel cuore dei creativi di tutto il mondo, complice un codice coplettamente riscritto in cocoa, un supporto nativo ai 64bit (con buona pace di AE e Premiere) e soprattutto il pieno supporto alle Apps per iPhone da parte di Flash CS5, vera chicca di questa release. Non ci resta che aspettare.

sabato 3 aprile 2010

Driver NVIDIA per Windows Seven su Sony Vaio VGN

UPDATE: Per i driver del CardReader, clicca qui!

Sarà successo a tutti, passando tra Windows Vista e Windows Seven, di avere rogne con i driver. Capita infatti che se il proprio portatile non rientra nel programma di update gratuito, e molto spesso è così anche per portatili recenti, ci si trovi nella condizione di rimanere legati a un vecchio SO anche se il proprio portatile ha tutte le carte in regola per eseguire quello nuovo.


Nel caso della Sony e dei suoi Vaio, è accaduto che alcune linee, come la NR, siano state tagliate fuori dal programma di update con la assurda giusitficazione che "nella maggior parte dei casi i driver per Vista funzionano anche su Seven, e comunque, era possibile scaricare la versione più aggiornata dei driver dal sito del costruttore dell'hardware o dal servizio di Update automatico di Windows".
Peccato che la stessa Sony ha inserito un blocco hw per cui i normali driver Nvidia, pur essendo perfettamente compatibili, non vengono accettati e che, molto stranamente, i driver grafici a 64bit disponibili nelle versioni beta di Seven siano inspiegabilmente scomparsi nella release definitiva.
E infine: e se uno vuole Seven a 64bit laddove per il suo portatile era previsto solo Vista a 32bit?
E' risaputo che le due versioni 32/64bit richiedono driver differenti.
E così, nella perenne ricerca di driver, ci accorgiamo che quasi tutti i dispositivi vengono riconosciuti, eccetto la scheda grafica nvidia, laddove il nostro portatile ne disponga.
Vediamo come uscire fuori da questa scomoda situazione.

Innanzitutto dobbiamo capire cosa impedisce ai normali driver grafici Nvidia di venire accettati. Non tutti sanno che l'installazione di driver nel nostro computer è gestita da un file *.inf ("information") che contiene le informazioni del driver che andremo a installare:
  1. Scaricate il driver dal sito nvidia assicurandovi che sia la versione addatta al vostro HW
  2. Scompattatelo seguendo la procedura automatica
  3. Entrate nella cartella DisplayDriver,e ancora nella sottocartella della versione che desiderate installare (in genere la più recente).
  4. Dovrebbe apparirvi una cartella denominata "WinVISTA_Win7_64", o "32", a seconda della versione che avete scaricato. Entate e aprite la sottocartella "International", che è il vero cuore.
  5. Qui cercate il file "nvam.inf", apritelo con blocnotes e scendete fino alla sezione [Strings]

Lì troverete l'elenco degli Id-Hardware per la quale il driver è compatibile, tra cui sicuramente anche la scheda grafica che voi possedete e che è apparentemente incompatibile. Ora qui viene il bello:
se la vostra scheda grafica fosse una normale nvidia, diciamo una 8700M serie GT acquistata in negozio, l'ID contenuto nel file INF nella sezione  [Strings]:

NVIDIA_DEV.0XXX.01 = "NVIDIA GeForce 8700M GT  "
-le x indicano una parte dell'id dell'HW, che cambia da macchina a macchina- 

Sarebbe più che sufficiente a far partire l'installazione. Siccome il vostro costruttore (Sony nel nostro caso) ha modificato l'id del nostro HW, quella stringa non è più valida, a meno che non facciate questa modifica:

  1. Fate clic col tasto dx del mouse su "Computer", l'icona nel vostro desktop o sul menu start, e cliccate su "Gestione"
  2. Nella finestra che si aprirà cliccate su "Gestione dispositivi" a sx e sull'icona della vostra scheda grafica col tasto dx del mouse.
  3. Cliccate su "proprietà"



  1. Nella nuova finestra scegliere la linguetta "Dettagli"
  2. Scorrete il menù a tendina e selezionate la voce "Id Hardware"
  3. Copiate il contenuto della prima riga (è sufficiente tasto dx -> copia)

Ora avete l'ID del vostro HW:

es.PCI\VEN_10DE&DEV_0426&UBSYS_902D104D&REV_A1

Lo andremo a incollare nel file *.inf precedentemente aperto.
Attenzione, questa è la fase più delicata, seguite scrupolosamente le istruzioni.
  1. Tornate al file .inf, sin nella sezione [Strings]
  2. Scrivete questa stringa:
    NVIDIA_DEV.XXXX.01 = "NVIDIA GeForce 8400M GT (Sony Vaio FZ38M)"
    dove al posto delle X dovrete inserire le 4 cifre successive al "DEV_" contenuto nella stringa precedentemente copiata. Nel nostro caso sarà quindi "0426".
    Credo sia scontato specificare che la parte contenuta tra virgolette vada sostituita col il vostro modello di scheda grafica e di notebook, seguendo rigorosamente la sintassi originale. 
  3. Nella remota evenienza che ci sia già una riga con le stesse 4 cifre (ma non sarà così) cambiate lo "01" in "02" o comunque nel primo numero a due cifre libero




  4. Copiate nella sezione [nvidia_seta_devices]                                                          %NVIDIA_DEV.XXXX.01% = Section015, PCI\VEN_10DE&DEV_0427&SUBSYS_17C21043, dove la parte in rosso sarà l'intero Id hardware precedentemente copiato.                                                  Purtroppo non so dirvi che numero di section inserire, io ho usato il 016 e ha funzionato. Andate per tentativi.



  5. Salvate il file Inf e fate partire l'installazione
Con un po' di fortuna, la vostra installazione partirà senza problemi. Io ho testato personalmente sul mio vaio questo metodo e tutto ha funzionato pefettamente e, anche in caso di errore nella procedura, il SO bloccherà l'installazione prime di eventuali danni.
Ciò fermo restando che non mi assumo responsabilità per ventuali danni arrecati ai vostri dispositivi ):-D