di Cesare Lamanna Commenta

In questo post Scott Guthrie, il "papà" di ASP.NET, ufficializza il debutto di un "Web Client Framework" denominato "Atlas". Il framework faciliterà l'adozione del modello di programmazione AJAX all'interno delle applicazioni web costruite con VS2005 e sviluppate con ASP.NET 2.0.AJAX è l'acronimo di Asynchronous JavaScript + XML. Non è una tecnologia vera e propria, ma bensì il frutto dell'azione sinergica di un insieme di tecnologie ben note: CSS + XHTML, XML, XSLT, XMLHttpRequest ed infine Javascript come collante.Per una panoramica completa su AJAX consiglio la lettura dell'articolo "Ajax: A New Approach to Web Applications" di Jesse James Garrett, disponibile anche in italiano.Se invece volete farvi un'idea su un sito AJAX powered, secondo Microsoft, visitate www.start.com.

Tags: ,
di Gabriele Farina Commenta

In questi giorni mi sto occupando di sviluppare l'interfaccia grafica della nuova versione di SEPY, un editor scritto in Python utilizzato per gestire codice AS.All'inizio ho optato per utilizzare nuovamente i widget nativi, dato che la libreria wxPython che utilizziamo per interfacciarci con il GUI Engine del sistema operativo risulta molto comoda in questi casi. Dopo qualche tempo però, ho voluto provare ad implementare manualmente alcuni widget, in modo da fornire loro un aspetto personalizzato ed accattivante.Mi ero preparato a dover affrontare ore di lavoro per risolvere problemi di ogni genere, ed invece ho scoperto che l'obiettivo che mi ero prefissato non era affatto difficile da raggiungere. wxPython fornisce l'oggetto wxDC che può essere utilizzato in diverse situazioni al fine di disegnare immagini, testo e forme geometriche più o meno complesse su una finestra. Combinado questo oggetto con il sistema di eventi della libreria, sviluppare i miei widget è stato quasi un gioco da ragazzi.Ho provato anche a far girare il programma su Linux e Mac OSX: ottimi risultati, omogeneità del layout e nessun errore!All'interno della libreria wxPython è possibile trovare moltissimi esempi di widget personalizzati: wxOGL, libreria di cui recentemente è stato fatto il porting completo in Python, ne è un ottimo esempio. Anche il programma pySketch, incluso nei demo di wxPython, utilizza l'oggetto wxDC e le sue estensioni per visualizzare i disegni fatti dall'utente.L'unica nota dolente è che purtroppo le cose si complicano nel momento in cui si ritiene necessario apportare delle ottimizzazioni al processo di rendering dei widget. Però questa è un'altra storia ...

di Gabriele Farina Commenta

Unicode è un sistema che permette di associare a molti caratteri e simboli un numero univoco indipendente dalla lingua, dalla piattaforma e dall'applicativo. Con il passare degli anni si è affermato come standard e molti linguaggi hanno iniziato ad includerene il supporto nativamente. Si pensi per esempio a Python o a Java che includono un ottimo set di librerie per la gestione unicode.Purtroppo PHP non sembra voler seguire la moda, e continua a gestire le stringhe come se fossero tutte sequenze di caratteri ascii, lasciando all'utente il dovere di implementare sistemi per la gestione di lingue che richiedono charset multibyte. A dir la verità tra le estensioni di PHP troviamo qualche libreria utile per la gestione di queste situazioni (si pensi alla libreria mbstring o al supporto per le librerie iconv), ma spesso gli hoster non ne abilitano il supporto.In molti si sono mossi al fine di convincere il team di sviluppo di PHP ad includere il supporto nativo per unicode, ma a quanto pare l'operazione sembra essere più complicata del previsto e comunque gli sviluppatori sono frenati dai problemi che portò a suo tempo l'implementazione del supporto nativo per unicode in Perl.Fortunatamente qualcosa sembra muoversi all'orizzonte: probabilmente PHP 6 si baserà su Parrot, un'efficiente virtual machine multipiattaforma creata per supportare i moderni linguaggi di scripting. La VM in questione supporta nativamente unicode, quindi molti dei nostri problemi potrebbero risolversi tra qualche anno ...Speriamo che tutto avanzi come previsto, e nel frattempo continuiamo ad occuparci dell'implementazione dei nostri sistemi hand-made per la gestione dello unicode.

Eye-tracking

1 Jul
di Cesare Lamanna 1 Commento

Dopo il primo articolo introduttivo, continua su PRO la serie dedicata all'eye-tracking. Daniele Cerra ci propone in questo appuntamento una panoramica sui test e sui tipi di output da essi generati. Quoto dall'articolo:I test di eye-tracking sono, in questo contesto di ricerca estrema dellÂ’efficacia di un progetto di comunicazione Web, uno strumento indispensabile in quanto, come vedremo nelle seguenti righe, forniscono informazioni inerenti sia allÂ’usabilità in senso stretto di un sito, sia dati che, interpretati con una solida metodologia di analisi, danno indicazioni molto precise sulle performance del progetto di comunicazione realizzato e su quanto sia in linea con le finalità del concept da cui è sorto.Sul tema eye-tracking segnalo anche 3 link interessanti:Eyetrack III - È il corposo dossier presentato dal Poynter Institute nel settembre 2004, forse lo studio più esaustivo e stimolante su questa metodologia di analisi.Solo con i tuoi occhi - Il commento alla ricerca del Poynter di Luisa Carrada.Documenti e filmati dai laboratori di SR Labs.

di Cesare Lamanna 8 Commenti

Grazie a Lifehacker ho trovato un bel post che elenca una lista di servizi utili per abbreviare URL troppo lunghi. Personalmente ero fermo a Tinyurl. Ecco tutti quelli che ho scoperto (molti sono stati segnalati nei commenti):ShorlSnipurlNotlongTinypicDoiopLilurlMakeShorterLinkUno dei commenti pone anche un problema. Passando con il mouse su un link così abbreviato non si ha nessuna informazione sul sito di destinazione. Arriverà prima o poi qualcuno dei soliti noti a sfruttare questa cosa per fini poco nobili?

Tags:
di Cesare Lamanna 2 Commenti

Per la fine dell'estate dovrebbe essere disponibile la prima beta pubblica di Internet Explorer 7. Gli uomini del team di sviluppo di IE ricreato nei mesi scorsi stanno facendo sicuramente un bel lavoro, anche di comunicazione. L'idea di usare un blog per diffondere gli aggiornamenti e raccogliere feedback è stata eccellente.Vedremo se oltre al tabbed browsing e alla probabile inclusione di un lettore di feed RSS ci saranno novità anche nel supporto degli standard W3C. A leggere certi post, però, c'è da rimanere basiti. OK, IE7 non avrà il supporto nativo per la creazione di angoli arrotondati così come definito nella specifica CSS3 (non ancora ufficiale). Ma dire: "Ragazzi, non è un gran problema. Gli angoli arrotondati in Explorer li potete fare già oggi" e linkare questo articolo di MSDN, fa tanta tenerezza (a voler essere buoni).Inutile dire che il post ha generato un fiume di commenti tra l'indignato e il divertito. Qualcuno ha pure ricordato all'autore che esistono sistemi un po' meno complicati e soprattutto molto più efficienti e personalizzabili.

di Cesare Lamanna 5 Commenti

Qualche mese fa ho tradotto per PRO una serie di articoli di Peter-Paul Koch usciti originariamente su Digital Web Magazine. Uno di essi è dedicato ad un tema caro a PPK e ad altri sostenitori del cosiddetto Unobtrusive Javascript: la separazione del codice Javascript dalla struttura, ovvero dal codice HTML della pagina. La tesi di fondo è questa: a che serve creare documenti standard compliant, validi, con codice pulito e ben strutturato se poi lo si riempie di istruzioni Javascript che potrebbero invece essere tenute separate? Sia benvenuta allora Behaviour, una libreria creata da Ben Nolan che offre una soluzione semplice e indolore per ottenere la tanto agognata separazione. Tutto è ottenuto grazie all'uso dei selettori CSS: vengono usati per specificare gli elementi a cui aggiungere gli eventi Javascript. Ecco l'esempio di codice proposto da Nolan: <li> <a onclick="this.parentNode.removeChild(this)" href="#">Click me to delete me</a> </li> Una semplice lista in cui cliccando sul li lo si fa scomparire. Come si vede, l'istruzione Javascript è richiamata con l'evento onclick inserito in un a. Roba triviale e stravista. Usando Behaviour, invece, potremmo mantenere il codice molto più pulito: <ul id="example"> <li> <a href="/someurl">Click me to delete me</a> </li> </ul> OK, Javascript è scomparso, ma come richiamiamo la funzione? Basta creare un JS da collegare alla pagina in cui andremo a inserire una serie di regole, così: var myrules = { '#example li' : function(el){ el.onclick = function(){ this.parentNode.removeChild(this); } } }; Behaviour.register(myrules); Attenzione alla seconda riga. Mettendo all'inizio #example li aggiungo l'evento a tutti gli elementi li discendenti dell'ul con id 'example'. Per altre demo si può vedere questa pagina. La documentazione è scarna, ma le poche istruzioni d'uso presenti sono molto chiare e più che sufficienti per iniziare a sperimentare. Segnalo anche un articolo di Alessandro Fulciniti, ricchissimo di link e dedicato alle ultime evoluzioni di Javascript.