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

Eventi, conferenze, occasioni sulla programmazione e sul mobile

Gennaio e Febbraio sembrano 2 mesi davvero pieni di occasioni per quanto riguarda il mondo dello sviluppo e della programmazione.

Il 23 Gennaio saro’ a Milano per la V UGIAlt.Net Conf, dove presentero’ una sessione sullo sviluppo per Android nella track mattutina dedicata allo Sviluppo Mobile.

Il 30 Gennaio saro’ a Roma per JavaDay 2010, anche qui interessanti sessioni e argomenti trattati, tra cui un paio di sessioni sempre sullo sviluppo per Android. Dopo il mio passato da DotNettaro e il mio presente da sviluppatore per mobile, e’ ora di iniziare ad entrare in pompa magna nei meandri piu’ nascosti e sfiziosi di questo universo.

Intorno al 15 Febbraio, se tutto va bene, saro’ a Barcellona per il Mobile World Congress. Anche quest’anno sono tra i giudici per i Mobile Premier Awards in Innovation, il che mi vedra’ coinvolto nel proporre 10 applicazioni tra una rosa di 48, che si sfideranno poi a Barcellona per il titolo del 2010. Seppur non banale ed impegnativo, questo compito ha il pregio fondamentale di inquadrare in che direzione si sta muovendo il mondo dei servizi per dispositivi mobili. E poi l’esperienza sara’ senza precedenti in quanto molti delle persone che scrivono sui blog d’oltreoceano che seguo saranno li presenti.

Nella wishlist degli eventi a cui vorrei partecipare c’e’ sicuramente quello organizzato da DotNetMarche: “Tra presente e futuro delle interfacce utente con WPF e MVVM“, il 29 Gennaio ad Osimo. Mi dispiace troppo non poter piu’ collaborare con loro a causa del mio espatrio, perche’ ogni evento era una festa tecnica e anche gastronomica. Andateci se siete in zona, ma anche se non lo siete, non rimarrete delusi!

C’e’ poi il Better Software a Firenze, il 5-6 Maggio. Magari riesco pure ad andare come blogger!

Infine, ciliegina sulla torta, ci stiamo organizzando con i ragazzi del WHYMCA Camp: aspettatevi qualcosa di grosso all’orizzonte, tutto focalizzato sulla programmazione per dispositivi mobili!

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’ »

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’ »