Skip to content
Archive of posts filed under the Misc category.

Invizimals: realta’ aumentata per il mobile gaming

Qui una recensione del gioco in italiano, che approfondisce meglio cosa si puo’ fare e in che modo la PSP viene fatta interagire con l’ambiente.

Per simulare le gesture fisiche, dato che la PSP non e’ dotata di accelerometri e giroscopi, probabilmente viene analizzata la posizione del codice sulla carta nell’immagine ripresa dalla webcam, e da questa viene infierito se la console e’ stata mossa e in che modo.

Insomma, un’idea davvero interessante, speriamo che dal settore ludico si possa poi passare, pian pianino, ad applicazioni per la vita di tutti i giorni…

Qualche riflessione sull’augmented reality

Augmented RealitySovrapporre uno o piu’ strati informativi alla realta’ davanti ai nostri occhi, mostrare dati provenienti dalla rete agganciati a cio’ che stiamo vedendo: a piu’ di 20 anni di distanza, la visione dei grandi autori del cyberpunk, come Gibson in “Luce Virtuale”, incontra una tecnologia in grado di farla diventare concreta e alla portata di tutti. Nascono cosi’ interessanti scenari di realta’ aumentata: un nuovo mondo da scoprire, sempre piu’ mobile, sempre piu’ con noi anche fuori da casa e dal lavoro.

I cyborg della serie Terminator poteva vedere informazioni aggiuntive in sovraimpressione a quanto i loro occhi inquadravano: nome della persona, dati sui veicoli, strada da percorrere. Seppur vecchio di 25 anni, questo e’ un primo esempio di cosa si puo’ fare con la realta’ aumentata. Da una fiction holliwoodiana del 1984, passiamo ai giorni nostri, dove i telefonini piu’ avanzati hanno portato questa stessa possibilita’ alle masse. Basta mettere a fuoco un monumento per conoscere il suo nome e una dettagliata descrizione, presa dalle pagine di wikipedia; trovarsi davanti ad un negozio ed accedere alle recensioni scritte dagli utenti, puntare una strada e sapere che, in fondo a destra, c’e’ una pizzeria, potendo anche navigare sul suo sito Internet.

Ma come’ possibile questa magia? Parte del merito e’ dei device mobili di ultima generazione, che da telefonini si sono evoluti fino a diventati smartphone e, oltre ad offrirci un collegamento in mobilita’ alla rete internet, sono in grado di capire esattamente dove si trovano nello spazio. Il gps fornisce le coordinate, gli accelerometri l’inclinazione, la bussola la direzione. Combinando questi tre fattori, e’ possibile determinare quali oggetti, con una posizione nota, ricadono nel raggio visuale della fotocamera del device. Proprio questo e’ il compito di programmi come Layar, Wikitude, Theodolite ed altri, che rielaborano il flusso di immagini riprese e lo combinano con le informazioni georeferenziate presenti nei loro database: indicazioni stradali, monumenti, dati sugli esercizi commerciali, modelli tridimensionali.

Eh si, perche’ da poco queste applicazioni sanno anche ricostruire complesse forme geometriche e collocarle davanti ai nostri occhi. e’ possibile cosi’ rivedere le torri gemelle puntando un iphone su Groud Zero, oppure scoprire, prima della sua costruzione, come sara’ il nuovo Market Hall a Rotterdam, prima ancora che sia finito: esplorarlo, girandoci attorno ed entrandoci dentro. Ancora, scovare piccoli Invizimals a passeggio per la casa e scatenare poi duelli tra di loro, vedere come sara’ l’aspetto di una costruzione Lego mettendo la scatola davanti ad un apposito specchio. Interessante anche il concept proposto da Ikea, grazie al quale si stampa un apposito codice a barre bidimensionale di un prodotto preso dal loro catalogo, ad esempio un letto, si posiziona il foglio dove questo prodotto dovrebbe andare, si inquadra con la webcam la stanza e il computer ci svela, in anteprima, come apparira’ con il letto montato e posizionato. non ci piace? nessun problema, stampiamo un nuovo codice, lo mettiamo al posto di quello vecchio e controlliamo il risultato. Quando siamo finalmente soddisfatti, il computer sa gia’ con quali prodotti stiamo arredando la camera e li ordinera’ per noi.

Continue reading ‘Qualche riflessione sull’augmented reality’ »

Informazioni sulle tabelle t-sql con sp_help

sp_help_tnVi trovate a dover gestire un ERROR 3726 durante la cancellazione di una foreign key e non sapete dove mettere le mani?

Un comando molto utile per sapere tutto, ma proprio tutto, della struttura di una tabella e’ sp_help, seguito dal nome della tabella di controllare.

Data di creazione della tabella, descrizione dettagliata di ogni colonna, indici e, soprattutto, la lista di tutte le foreign key assegnate, per controllare a colpo d’occhio le altre tabelle coinvolte e rendersi conto di come mai non riesco a cancellare un record e quali chiavi sono responsabili del vincolo di integrita’ bloccante…

Le informazioni visualizzate sono gia’ tutte disponibili in altre schermate sparse in giro per la management console, semplicemente questo comando le riunisce tutte.

Refactoring 2TheMax

Di seguito le slide del mio intervento al workshop “Refactoring 2TheMax”, organizzato da DotNetMarche.

Si parla di refactoring, pattern, come e quando rifattorizzare, test-driven development e altre cose inerenti l’argomento.

Grazie a Diego per avermi fornito il materiale base per la loro preparazione.

YQL, Yahoo! Query Language

Da sempre ho sostenuto che Yahoo! è una delle realtà più attive per quanto rigarda la creazione di tool potenti e di facile impiego per la presentazione e manipolazione delle informazioni null’universo di Internet. Basta pensare a Yahoo! Pipes, BOSS, le API del suo motore di ricerca e diverse altre cose.

A Londra ho conosciuto YQL, Yahoo! Query Language, uno strumento le cui potenzialità mi hanno davvero strabiliato! YQL, infatti, permette di interrogare un insieme di dati con una sintassi molto simile all’SQL (per i dotnettari, praticamente e’ come usare LINQ). Il bello e’ che gia’ pronti per queste ricerche ci sono una marea di fonti: Flickr, Upcoming, Yahoo! Messenger, Google, Facebook, Twitter, Friendfeed, Lastfm, WordPress e molte, molte altre.

Per usare YQL basta una semplice query REST in GET e i risultati possono essere ritornati sia in JSON che in XML. Ad esempio, per conoscere il mio ultimo status su Twitter, va usata una query con questa sintassi:

select * from twitter.user.status where id='rainbowbreeze'

che tradotta in una richiesta REST con output XML, torna questi dati qui. Assolutamente fantastico, basta una veloce botta di parsing e si ottengono in un attimo le informazioni ricercate.

Come e’ facile notare, non sono passato per le API di Twitter, e questo significa aver risparmiato un bel po’ di codice. Certo, non ho tutte le stesse funzionalità esposte dalle API, ma davvero ne ho sempre ed in ogni caso bisogno? Tempi di sviluppo tremendamente abbassati, con indubbi vantaggi per il porting multipiattaforma dei programmi per mobile.
Continue reading ‘YQL, Yahoo! Query Language’ »

Over the Air, il ritorno a casa

OverTheAir 09, SAY development processAnche stavolta l’Over the Air ha lasciato il segno, regalandomi 27 ore continuative e vissute tutte d’un fiato, completamente dedicate alle tecnologie mobili. Per la cronostoria di quanto accaduto c’e’ il flusso di tweet dell’evento, mentre di seguito i miei pensieri degni di nota.

Puntare il proprio telefonino verso il cielo e vedere quali sono i voli sopra la propria testa, oppure, in un porto, inquadrare una barca e ricevere informazioni sul suo carico con la possibilita’ di essere messi direttamente in contatto con la cabina di pilotaggio. Piena esplosione creativa e progettuale per l’augmented reality, sia a livello di possibili scenari futuri, sia per quanto rigarda modalità d’uso nel presente C’era da aspettarselo doputtutto, dato che gli smartphone odierni aggregano informazioni, contesto ed estrema portabilità. Layar e Wikitude hanno fatto da apripista in questo mondo, e grazie alle API di Wikitude si puo’ sperimentare a costo zero anche nel proprio “garage” domestico. C’era anche molto voglia di creare gruppi di appassionati / specialisti del settore per ragionare assieme sopra a questo tema. Se a qualcuno interessa, pingate sia Paul Foster che Mark A.M. Kramer. Penso che nei prossimi anni questo sara’ il campo dove maggiormente si spingera’ il piede dell’acceleratore per i device mobili.

Forte anche il tema dello sviluppo multipiattaforma, racchiuso sotto la parola widget, che grazie al solo utilizzo di tecnologie standard quali HTML, CSS, Javascript promettono molto bene. Purtroppo l’accesso alle peculiarita’ del dispositivo (gps, rubrica, calendario ecc) rimane ancora differenziata a seconda della piattaforma. Stesso discorso per il modello di sicurezza da adottare, per sapere quale applicazione puo’ accedere al mio calendario o trasmettere la mia posizione in giro per la Rete. Ci sono diverse proposte (BONDI) pero’ nessuna ha avuto ancora il sopravvento. La tecnologia dei widget, comunque, rimane ancora pionieristica e molto giovane: Opera li supporta ormai da un annetto, Windows Mobile dalla versione 6.5, Nokia dall’ultima versione di Symbian.

Continue reading ‘Over the Air, il ritorno a casa’ »

Valigie pronte per l’OverTheAir

OverTheAir LogoCi siamo, questo weekend si parte per Londra, alla volta dell”OverTheAir, una conferenza di due giorni sullo sviluppo mobile. Gratuita, eccellente se si rimane sugli stessi livelli dell’anno scorso, capace di solleticare la mia fantasia come non mai, vista la trasversalita’ e vastita’ degli argomenti proposti…

Arduo scegliere a quali delle molte sessioni partecipero’, dato che il programma anche quest’anno e’ ricco di cose interessanti. Di sicuro seguiro’ le sessioni sull’Augmented Reality, vera chicca del mondo mobile del 2009, qualcosa sullo sviluppo cross-platform con QT, DOJO, JavaFX e altri toolkit, un pizzico di mobile user experience e poi vedremo cosa improvvisare…

Immancabile anche quest’anno la mia partecipazione all’hack-a-thon notturno, che l’anno scorso ha partorito S.N.O.B. (Social Network Open Butchler), grazie al quale mi sono riportato a casa un bel telefono. Le idee che sto elaborando con Stefano sono spaziali: si parla di geolocalizzazione dei contenuti, augmented reality grazie alle Wikitude API, webservice, social network  e altre cosine interessanti: vedremo tra iPhone, Android e Windows Mobile (le piattaforme in cui siamo in grado di sviluppatore), se riusciamo a tirar fuori qualcosa che ammagli la giuria anche quest’anno. Ma la concorrenza sara’ alta, non ci sono dubbi. Unico problema, essendo l’hack-a-thon notturno, dovro’ avere i neuroni stra reattivi dal mio arrivo a Londra fino alla fine delle conferenza: 24 ore senza sosta che in normalmente avrei retto senza grossi problemi, ma in queste ultime tre settimane il sonno mi stanno mancando come mai successo prima, e non so se riusciro’ a recuperarle da qui a tre giorni. Speriamo bene, mi dispiacerebbe non essere al top della forma solo a causa della stanchezza…

Nella mia toolbox da tecnoviandante mettero’ il netbook, ormai collaudato compagno di viaggi, ed avro’ l’occasione di testare estensivamente il G1, la sua tastiera hardware, la sua fotocamera, la sua batteria, Shozu, poi se riesco prima della partenza ad installare un client per aggiornare wordpress, testero’ anche quello. Direi che non ho bisogno di altro.

Un solo rammarico: se non fosse stato per Stefano, sarei stato anche quest’anno, da quanto so, l’unico italiano presente all’OTA. Voli low cost, ingressi gratuito, vitto e alloggio pagato, per spesa totale di 140 euro. Non e’ decisamente un problema economico. Possibile che questa mancanza cronica di sviluppatori del nostro paese alle piu’ importanti conferenze europee non riesca proprio a trovare un’inversione di tendenza? Come facciamo a rimanere competitivi in un mercato globale se non siamo i primi ad essere padroni di una cultura da diffondere poi a cascata, presso i nostri clienti/utenti, ma anche amici?

Chiamare una scalar-valued function da Visual Basic 6 con Ado 2.x

Mettiamo di avere nel nostro database una scalar-valued function cosi’ definita

CREATE FUNCTION [dbo].[fnFaiCoseConMessaggio]
(
-- Stringa da spezzare a meta’
@MsgDaProcessare varchar(255)
)
RETURNS float
AS
BEGIN
-- Declare the return variable here
DECLARE @Result varchar(255)

-- fa tutta una serie di cose con il messaggio iniziale
-- ….
SET @Result = @MsgDaProcessare
-- ….

-- ritorna il risultato dell’elaborazione
RETURN @Result
END

Di seguito il codice per poter chiamare la scaled function da Visual Basic 6, utilizzando ADO

Continue reading ‘Chiamare una scalar-valued function da Visual Basic 6 con Ado 2.x’ »

Scrolling con la mouse wheel in VB6

vb6.jpg
Se, alle soglie del web semantico e del Software As A Service, siete ancora alle prese con lo sviluppo in Visual Basic 6, allora avrete sicuramente un mouse con rotella di scorrimento che non vi funzionera’  all’interno dell’IDE (oltre che la necessita’ di fare un punto della situazione della vostra vita al piu’ presto).

Fortunatamente qualcuno ha avuto compassione di voi e ha realizzato un programmino che risolve il problema:
Dalla KB Microsoft: Mouse wheel events do not work in the Visual Basic 6.0 IDE
E dall’autore del programma: Scroll Wheel Fix for VB6

Vi sentite gia’ meglio, vero? Si, pero’ continuate a riflettere sul fatto che state ancora usando VB6. Oggi siamo nel 2009, VB6 si installava da dischetti, neanche tanti poi!

Continue reading ‘Scrolling con la mouse wheel in VB6’ »

Da float a stringhe binarie e viceversa con T-SQL

Potrebbe capitare l’esigenza di dover convertire dei float in stringa, ad esempio per memorizzare dei nuovi dati numerici nei campi stringa lasciati liberi in un db legacy, le cui tabelle non possono per nessun motivo essere estese o modificate.

La soluzione piu’ semplice e’ memorizzare i numeri all’interno del campo stringa nella loro rappresentazione numerica. Ad esempio, se devo memorizzare due numeri

123,4567 e 234,5678

e considerando almeno 10 caratteri per numero, la corrispondente stringa sarÃ

“  123,4567  234,5678″

Per la riconversione al valore originario, leggo la stringa a blocchi da 10 caratteri e la trasformo. Semplice, veloce e leggibile anche ad occhio nudo.

Ma questa non sempre non e’ la soluzione praticabile se lo spazio che si ha a disposizione e’ poco e se i valori dei numeri devono essere preservati nell’interezza del loro range di valori.

Prendiamo il caso  che debba memorizzare 30 quantita’ e 30 prezzi, con un dato di tipo float, per un articolo che ha una scala taglie, come una scarpa, un capo di abbigliamento o altro prodotto fashion.

Se usassi la rappresentazione numerica dei valori, e considerando almeno 16 cifre per ogni numero (virgola compresa), avrei bisogno di (30 + 30) * 16 = 960 byte. Memorizzando invece nella stringa la rappresentazione binaria di valori, necessiterei di (30 + 30) * 8 = 480 byte (il float occupa 8 byte). Certo, i dati avrebbero bisogno di una conversione apposita prima di essere trattati e sarebbero illeggibili “ad occhio nudo”, ma risparmierei la meta’ dello spazio!

Tutto dipende dai casi, ma per quei vecchi db dove ci sono magari 500 caratteri a disposizione per le ulteriori personalizzazione utente, questo giochetto ha preservato la mia sanita’ mentale. ;)

Continue reading ‘Da float a stringhe binarie e viceversa con T-SQL’ »