Javascript è una di quelle cose che è facile dire “lo conosco” …

function hello() { alert(”hello”); }

… ma poi sono poche le persone che posso dire “lo conosco bene“.

Ora, non voglio dire che solo questi 3 guru lo conoscano a dovere, ma diciamo che non mi capita spesso di trovare persone capaci di proporre approfondimenti non banali e ricchi di contenuto.

Tornando a noi, voglio segnalare un post scritto da Claudio Cicali, che mi è capitato di leggere un paio di giorni fa e di cui sono rimasto veramente affascinato

L’argomento penso sia molto interessante: “closure in Javascript“.

Una delle più potenti feature di JavaScript è la possibilità di usare una particolare tecnica di mantenimento dello stato chiamata closure. Va detto subito che il concetto di “closure” non è stato inventato dal JavaScript; altri linguaggi ne fanno uso, talvolta implementando anche un’apposita keyword del linguaggio stesso.

Capire bene le implicazioni di questo meccanismo non è banalissimo, ma per la sua potenza e la sua grande esposizione ai bachi più insidiosi, permette di salire di un gradino nella propria conoscenza di JavaScript; personalmente, ritengo che esistano due tipologie di programmatori JavaScript: chi sa come usare le closure e chi no :)

Fatta la doverosa premessa, iniziamo dal principio…

Non mi rimane che fare i miei complimenti a Claudio e sperare che continui a scrivere approfondimenti di questo livello.

Technorati: ,
BlogBabel: ,

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

E’ passato parecchio tempo da quando su queste pagine vi parlavo di un questo player mp3 realizzato interamente con tecnologa Adobe Flash, ed oltre ad essere passata un sacco di acqua sotto il ponte, ci sono stati anche un sacco di aggiornamenti.

Partiamo dall’aspetto grafico, … quello che una volta era così:

( versione 1.1 )

JW Flash Mp3 Player - ver. 1.1

adesso è così:

( versione 3.9 )

JW Flash Mp3 Player - ver. 3.9

ma con una quantità di opzioni per personalizzarne l’aspetto ed il comportamento veramente notevole.

In pratica possiamo cambiare colori, dimensioni, aggiungere immagini, visualizzare la durata del brano, aggiungere un pulsante per il download, utilizzare un singolo file o un file XML che funga da playlist e tantissime altre cose.

L’utilizzo rimane comunque molto semplice, e giusto a titolo esemplificativo ecco le righe di codice necessario per l’utilizzo nella sua versione più minimale.

  1. <script type="text/javascript" src="swfobject.js"></script>
  2. <div id="player3"><a href="http://www.macromedia.com/go/getflashplayer">Get Adobe Flash Player</a></div>
  3. <script type="text/javascript">
  4.         var s3 = new SWFObject("mp3player.swf", "line", "240", "20", "7");
  5.         s3.addVariable("file","song1.mp3");
  6.         s3.addVariable("repeat","true");
  7.         s3.addVariable("showdigits","false");
  8.         s3.write("player3");
  9. </script>

Nell’esempio viene usato SWFObject ( che deve essere presente nella stessa dir del player ) che altro non è che uno script javascript per l’utilizzo di Flash senza troppi problemi.

Se non vi piace come soluzione Jeroen ha messo a disposizione un wizard per le generazione del codice necessario senza l’utilizzo di javascript.

Per i più pigri, che magari vorrebbero un plugin per wordpress che facesse tutto da solo, aggiungo ancora un paio di linksss …

Merita però una citazione particolare Mediacaster, che è sempre un plugin per wordpress, ma che non si limita e utilizzare il lavoro di Jeroen per i file mp3, ma integra anche una gestione per i video ( file .flv).

Concludo con un avvertenza, se avete domande o dubbi, prima di chiedere, leggete 10 volte il readme e poi provate con il forum.

Technorati: ,
BlogBabel: ,

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

Non voglio soffermarmi a parlare di cosa e come usare JSON ma di come attraversarlo in modo ricorsivo.

Nel mio caso avevo bisogno di gestire una matrice complessa, velocemente modificabile tramite javascript, ma prima dell’invio al server dovevo trasformare il tutto in formato XML.

La struttura dinamica della matrice JSON non mi permettava un approccio statico, e quindi l’unica strada percorribile mi è sembrata un iterazione ricorsiva.

La funzione fa uso della proprietà “constructor” per capire il tipo di aggetto contenuto nella coppia e quindi valutare la gestione della ricorsività.

function jsonIterator( obj ) {
 for ( var i in obj ) { 
  if ( obj[i].constructor.toString().indexOf('Object') < 0 ) { 
   alert( "<" + i + ">" + obj[i] + "</" + i +">" );
  } else {
   // se è un oggetto gestisco la ricorsività
   alert( "<" + i + ">" );
   jsonIterator( obj[i] );
   alert( "</" + i + ">" );
  }
 }
}

Se quindi ipotizziamo un matrice complessa simile a questa …

o = {}
o.a = 1
o.b = [9,8,7,6,5]
o.c = {}
o.c.aa = 11
o.c.bb = 22
o.c.cc = {}
o.c.cc.aaa = 111
o.c.cc.bbb = "stringa"
o.c.cc.ccc = [1,2,3,4,5]
o.c.dd = 33
o.d = "stringa"

.. possiamo attraversarlo iterarlo semplicemente scrivendo:

jsonIterator(o)

Forse ho scoperto l’acqua calda … ma mi sento tanto bravo :) :)

Per il momento è testato solo con ie6 e FF1.5, se riesco domani provo con ie7 e FF2

Technorati:
BlogBabel:

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

Continua a stupirmi la velocità con cui continuano ad essere sviluppati nuovi plugin per jQuery, alcuni del tutto originali mentre altri ispirati da altre librerie.

Nello specifico sto parlando di Carousel e del suo porting in versione jQuery

Per quanto riguarda la documentazione ed il numero di funzionalità, pur non avendo fatto un controllo accurato, mi sembrano equivalenti: autostart, scroll verticale , css ed immagini personalizzabili ed integrazione con ajax.

Leggi il resto »

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly
ajax

Il 22 Agosto 2005 venne pubblicato il primo post dove furono illustrati i contetti alla base di jQuery: anche se in ritardo tanti auguri !

Ad un anno di distanza ( una coincidenza ??? ) viene rilascita la release 1.0

A lot of work has gone into this release. A lot of bugs fixed, a ton of new features, and a complete overhaul of how the jQuery development process is run.

Oggi vengono pubblicate le prime bugfix ( Release 1.0.1 ) tra cui il supporto nativo al nuovo oggetto Ajax presente in Internet Explorer 7

Si raccomanda vivamente l’aggiornamento alla nuova versione.

Technorati:
BlogBabel:

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly