var mysite = {
    'url': "http://www.ajaxweb20.net",
    'author': "Giuseppe Raso",
    'xhtmlValid': true,
    'cssValid': true
}
Home > Blog

Archive for Luglio, 2007

Vacanze estive

Sabato, Luglio 21st, 2007

Come un pò tutti voi me ne vado in vacanza, libero dagli stress della città e soprattutto dal computer.
Quindi per circa un mese non vedrete niente di nuovo in questo blog.
Ci vediamo a Settenbre, con un sacco di novità. Ciao !

PS: Vi lascio a riflettere su questo grafico:

Tools flash per disegnare in 3D

Venerdì, Luglio 20th, 2007

Molto strano questo tool flash; permette di disegnare delle linee che gireranno su se stesse…

Non ne capisco l’utilità ma potrebbe divertirvi per una decina di secondi.

Progetti disordinati

Venerdì, Luglio 20th, 2007

Purtroppo capita spesso:

Il nuovo film di Bruce Lee

Giovedì, Luglio 19th, 2007

Sicuramente andrò a vedermelo: Bruce Lee assomiglia un pò a mio fratello di 6 mesi
Apparte gli scherzi stasera me lo vedo su Sky, credo ne valga la pena anche solo per il combattimento finale…

Megoogle - motore di ricerca da hacker

Martedì, Luglio 17th, 2007

Megoogle è un progetto da me personalmente realizzato che consente di compiere varie ricerche in diversi motori di ricerca.
E’ in parole povere un mashup che raccoglie vari servizi in un’unica pagina.
Megoogle permette oltre a ciò di compiere varie ricerche da hacker, ad esempio per cercare mp3, immagini o divx nelle directory web, o peggio ancora per intrufolarsi  nelle webcam di tutto il mondo.
 Inutile fare un post eccessivamente lungo per presentarvi tutte le caratteristiche, andate a provarlo e fatemi sapere cosa ne pensate.

PS: A presto verrà rilasciata un’estensione per FF per permettere di visualizzare l’url nel frame. E’ in studio anche una toolbar.

Tools a cui non puoi rinunciare per formattere il tuo codice

Domenica, Luglio 15th, 2007

In molti progetti è necessario lavorare con altre persone, oppure riprendere il codice a distanza di tempo;  i commenti aiutano molto, ma anche il codice deve essere autoesplicativo: si rende perciò necessario l’uso di una buona formattazione.

Ma che fare se abbiamo diversi file mal formattati? Dobbiamo formattarli a mano?
Per fortuna non c’è ne bisogno poichè esistono tool che fanno questo lavoro per noi.

Tra i più efficaci c’è PrettyPrinter, utile soprattutto per formattare i blocchi contenuti tra parentesi graffe, perciò stili CSS, funzioni, loop ecc…

Se invece volete formattare del codice e inserirlo nella vostra pagina web potete usare QuickHighlighter, davvero un ottimo tool che supporta una miriade di linguaggi.

Una lista più completa è stata stilata da SmashingMagazine.

Controllare se il browser supporta un particolare stile

Giovedì, Luglio 12th, 2007

Uno dei costrutti più potenti di Javascript è il for - in; esso permette di scorrere un oggetto lungo tutte le sue chiavi.
Ad esempio possiamo usarlo per scorrere un oggetto letterale:
var obj = {
  ‘prop1′: "value1",
  ‘prop2′: "value2"
}

for(var i in obj) {
  alert(i + ":" + obj[i]);
}

La parola chiave in è molto efficace anche se ci serve capire se una certa proprietà esiste o no:
alert("variabile" in window)

Cosa c’è di diverso rispetto a un più usuale:
alert(window.variabile); ?

Il bello dell’in è che restituisce true anche se la proprietà è uguale a null o undefined;
possiamo sfruttare questa prerogativa per verificare se il browser supporta un certo stile:
if("opacity" in elemento.style) {
  //do something
}

Con questo metodo è ad esempio possibile fare una sorta graceful degradation per quei browser che non supportano l’opacità, magari sostituendo all’immagine normale una png trasparente.
In questo caso ricordatevi però di controllare MozOpacity, khtmlOpacity e filter..

Javascript - Simulare apply su vecchi browser

Mercoledì, Luglio 11th, 2007

Apply è un’utile prototipo dell’oggetto Function che permette di modificare lo scope all’interno di una funzione ( ovvero a quale oggetto si riferirà this ) e di passare degli argomenti sotto forma di array; quest’ultima feature è molto interessante, poichè non esistono altri modi semplici per fare una cosa del genere; ad esempio potrebbe servire passare gli argomenti di una funzione a un altra funzione:
 function caller() {
  second.apply(this,arguments);
}
Purtroppo apply non funziona con le vecchie versioni del browser Microsoft, oltre a ciò, sempre su IE, apply non funziona sui metodi nativi ma solo sulle funzioni crete dal programmatore.

Il metodo più usato per simulare apply è utilizzare eval:
function caller() {
  /*ATTENZIONE: questo codice non funziona veramente;
  prima di usare eval sarebbe necessario copiare le voci
  di arguments in un vero array; arguments è un oggetto*/
  second(eval(arguments));
}
Purtroppo eval ha vari svantaggi, tra questi il fatto che se uno degli argomenti è un oggetto salta tutto…
Non a caso il precedente esempio non funziona come dovrebbe, proprio perchè eval interpreta ogni oggetto come una stringa.
Che fare allora? A eval non si può rinunciare, ma vediamo di usarlo meglio questa volta!
 Function.prototype.apply = Function.prototype.apply || function(thisObj, args) {
  var  evalArgs = "",
        evalScope = "",
        f = this,
        res;

  for(var i = 0, l = args.length; i!=l; i++) {
    evalArgs += ‘args[’ + i + ‘]’;
    if(args[i + 1]) evalArgs += ‘,’
  }

  if(thisObj) {
     thisObj.__________apply_f = f;
     evalScope = ‘thisObj.__________apply_’;
  }

  res = eval(evalScope + ‘f(’ + evalArgs + ‘)’) || null;
  if(thisObj.__________apply_f) delete(thisObj.__________apply_f);
  return res;
}
Questa funzione si occupa di creare una stringa del tipo ‘a[1],a[2],a[3]’, passata poi alla funzione eval.
Oltre a ciò crea un metodo temporaneo dell’oggetto che poi viene cancellato, in modo da poter applicare la funzione con lo scope giusto.
Avevo pensato a una soluzione alternativa, ovvero controllare il numero di argomenti e regolarsi di conseguenza, ma forse in questi casi eval è meglio.

Function.prototype.caller ed Opera

Martedì, Luglio 10th, 2007

Function.prototype.caller è un’utile proprietà che permette di sapere se una funzione è stata a sua volta richiamata da un altra funzione; attraverso la stessa proprietà si riesce ad ottenere un riferimento alla funzione chiamante.
Caller può essere molto utile nel debug, ma oggi, cercando di simulare le sottoclassi concatenate con javascript, avevo bisogno di verificare quale fosse la funzione chiamante.
Purtroppo ho avuto una brutta sorpresa… Mentre su Firefox, Safari e IE non ci sono problemi, Opera non supporta questa proprietà!
Per adesso non ho trovato altra soluzione che passare la funzione chiamante come argomento della seconda; voi conoscete una soluzione migliore? Dovessi trovarla aggiornerò il post

Joox - vedere i film più recenti alla faccia del copiright

Martedì, Luglio 10th, 2007

Joox è una delle piattaforme TV più belle di cui mi sia capitato di conoscere. Perchè? Cosa ha di diverso rispetto a Joost e a Babelgum?
Per accorgersene basta sfogliare la lista degli ultimi video aggiunti: tra questi Shrek 3, Transformers ed Epic Movie; in parole povere Joox offre la visione completamente gratis di film ( !!! )
Il bello è che la gamma dei titoli proposti è molto ampia, tanto è vero che potremo goderci anche film degli anni 70.
I contenuti sono tutti in inglese, ma oltre ai film possiamo trovare show televisivi, cartoni, sketch comici, persino film indiani ( provenienti dalla cosidetta Bolliwood )!

Per poter utiizzare il servizio è necessario prima di tutto installare il Divx Web Player; ovviamente non si tratta di un plugin creato da Joox per  offrire al pubblico i "propri" contenuti, bensì di un lettore free scaricabile anche da http://www.divx.com/divx/windows/webplayer/

Non credo che il servizio avrà vita lunga, anzi, immagino farà la stessa fine di allofmp3, tanto vale andarci subito a dare un occhiata; inutile dire che se lo si fa è a proprio rischio e pericolo visto che non c’è niente di legale…