Articoli con Tag ‘browser’


jQuery: bordi rotondi sulle immagini per sovrapposizione

A causa dei diversi rendering tra i vari browser, che vedono sicuramente Microsoft Internet Explorer in testa, bisogna sempre ricorrere ad artifizi particolari per applicare effetti che, ormai, dovrebbero rappresentare uno standard. I pluri-discussi bordi arrotondati sono un classico esempio del “disastro” prodotto dalla completa incapacità di realizzare uno standard serio sul rendering delle pagine HTML/CSS. Esistono in rete numerosissime soluzioni che permettono di ottenere “effetti” (effetti che esonerano dall’HTML attuale come bordi arrotondati, effetti ombra, riflessioni, etc…) con patch sui fogli di stili, particolari trucchi con l’uso di div innestati, librerie Javascript, uso delle canvas, etc…
A titolo puramente didattico vorrei illustrare un’ulteriore tecnica (cross-browser) per applicare dei bordi arrotondati a delle immagini:

Demo e sorgenti

Continua...

Creare applicazioni Desktop con Google Chrome e FireFox?

Google Chrome permette di creare applicazioni Desktop a partire da una pagina Web? In realtà, come indicato nella voce di menu, è semplicemente permesso di creare una scorciatoia ad un collegamento che – a sua volta – apre una finestra senza barra degli indirizzi e senza tutti i “fronzoli” del browser. Con questo non significa che abbiamo creato un’applicazione Desktop; abbiamo solo creato un link allo stesso Google Chrome in modalità – per così dire- chrome-less.

Caratteristica simle, ma più ambiziosa, era già stata proposta dalla fondazione Mozilla nel 2007, tramite il progetto Prism. Questo è sicuramente più versatile ed articolato, corredato anche da un’utile estensione che permette di creare applicazioni desktop dal menu di FireFox, alla stregua di Google Chrome.

Tuttavia, entrambe le soluzioni, sono ben lontane dalla tecnologia Adobe AIR. Prima che qualcuno le confonda è bene sottolineare le differenze sostanziali tra un collegamento sul desktop, che apre una finestra senza menu, ed una applicazione desktop vero e propria.
Adobe AIR, infatti, a differenza delle soluzioni proposte da Google Chrome e Prism permette:

  • Accesso virtualmente completo al sistema su cui gira l’applicazione, con la possibilità di leggere e scrivere file. Possibilità di estendere le proprie funzionalità tramite dll (dynamic link library), estensioni e prodotti di terze parti come SHU Player (vedi Distribuire applicazioni Adobe AIR: da AIR Badge a SHU Player)
  • Gestisce l’applicazione come le altre applicazioni di sistema: installazione e disinstallazione

Continua...

jQuery contro tutti: un benchmark con 5 browser

image Un buon sviluppatore non ha problemi a passare da un linguaggio di programmazione ad un altro. La scelta di concentrarsi su un particolare linguaggio, framework o ambiente di sviluppo, è dettata più dalla disponibilità di tempo e dal tipo di lavoro che si svolge. Tuttavia, un fattore importante che può influire sulla scelta di “framework” simili, è la simpatia o l’affezione che può maturare con il tempo.
Nello specifico, ho voluto analizzare alcuni – non certo tutti – framework Javascript disponibili oggi, anche perchè “consigliato” a dare un’occhiata soprattutto a jQuery.
I creatori di mootools (uno dei più noti framework Javascript) hanno reso disponibile uno strumento per eseguire un test di velocità e validità su cinque noti framework Javascript: Slickspeed. Questo test, dagli esiti non affatto scontati, è importante in quanto i framework Javascript operano lato client, cioè vengono eseguiti dal nostro browser. È proprio per questo motivo che alcuni trovano Safari più rapido di Internet Explorer o Google Chrome più rapido di FireFox. Tuttavia ciò spesso dipende anche dal tipo di pagina che si sta visualizzando. Infatti può benissimo capitare che un particolare sito sia davvero più “veloce” se visualizzato in Safari, ma questo non significa che “tutti i siti” saranno più veloci con Safari! Ovviamente questo discorso è valido per qualsiasi altro browser.

Il benchmark

Nel test che ho effettuato con Slickspeed ho messo a confronto i browser disponibili sulla mia macchina (Windows Vista Utilmate 64bit – Intel core 2 quad a 2.4GHz con 8Gb RAM).
Purtroppo il test non sono riuscito ad eseguirlo con Internet Explorer 7, in quanto bloccava la macchina, andando anche fuori scala con i risultati! Ancora una volta complimenti Microsoft.
Ho crercato di mantenere identico lo stato del PC durante l’esecuzione dei test, aprendo singolarmente i browser e non mandando nessun altro processo in esecuzione.

Nota: se avete voglia di eseguire anche voi uno o più di questi test, potete commentare questo post in caso di “curiosi” e diversi risultati.

image

Google Chrome è risultato davvero veloce, con un valore di 68 (media) nell’esecuzione dei test con jQuery. Il più lento, invece, è risultato Flock, nonostante provenga dalla stessa “madre” Mozilla. Questo pessimo risultato di Flock è davvero curioso visto il suo taglio Social Network; perchè sono proprio i Social Network Web 2.0 a sfruttare molti dei framework Javascript disponibili, così da fornire un’esperienza di navigazione ed interazione davvero innovativa.
A sorpresa Opera batte FireFox e anche di un bel po’, ottenendo addirittura un 74 nell’esecuzione di Dojo! FireFox e Safari, tutto sommato, si assomigliano, con Safari più rapido nei test con Mootools e jQuery.

Quale framework scegliere?

Se non badiamo ai test sulla velocità di esecuzione e non ci preoccupiamo della dimesione in Kbytes dei framework stessi, la risposta potrebbe essere “quello che più vi piace” o, se preferite, “quello che conoscete meglio o vi risulta più armonico con il vostro stile di programmazione”.
In ultima analisi questi framework si assomigliano un po’ tutti (vedi l’uso del $ ad esempio), nonostante alcune importanti e sostanziali differenze che possono saltare agli occhi di un esperto o nell’uso davvero spinto di una particolare libreria. In linea di massima, infatti, tutto quello che si può realizzare con jQuery, ad esempio, lo si può fare benissimo con mootools o prototype! Se jQuery vanta una sintassi estremamente compatta, in quanto tutti i metodi restituiscono sempre l’oggetto base jQuery, creando così file interminabili di oggetto.metodo().metodo().metodo()... non è detto che questo sia a tutti i costi un punto di forza, soprattutto per chi dovrà fare il debug!
Librerie come prototype.js peccano forse in assenza di effetti grafici, anche semplici, costringendo lo sviluppatore ad implementare spinoff come scriptaculous.js, pesanti e distanti dalla libreria inizialmente scelta.

Un esempio

Proprio quest’ultimo motivo, ad esempio, mi ha portato a sostituire l’accoppiata prototype/scriptaculous con jQuery per realizzare i pannelli interattivi/animati qui nella sidebar di undolog.com. In effetti, usando anche Google API per importare le librerie, è uno spreco caricare tutta la libreria scriptaculous per uno slideDown e slideUp. A titolo informativo e di esempio, ecco com’era il codice Javascript con l’accoppiata prototype/scriptaculous:

1
2
3
4
5
6
7
8
9
10
11
12
13
// prototype/scriptaculous
$$('h2.dropdown').each(
    function(element) {
        element.style.cursor="pointer";
        element.observe('click',
            function(event) {
                if( this.next().style.display == "" ) new Effect.BlindUp(this.next(),{duration:.5});
                else new Effect.BlindDown(this.next(),{duration:.3});
                Event.stop(event);
            }
        )
    }
);

e com’è adesso con jQuery:

1
2
3
4
5
6
7
8
9
10
// jQuery
$('h2.dropdown').each(
    function(i) {
        $(this).css('cursor','pointer').click(
            function() {
                if( $(this).next().is(':hidden') ) $(this).next().slideDown(); else $(this).next().slideUp();
            }
        );
    }
);

Tutto sommato, a ben guardare, non mi sembra ci sia moltissima differenza! Ma come dicevo prima… è questione “anche” di gusto personale.

Continua...

Flick e Flock

Se c’è una cosa che Mozilla sa fare bene sono i browser!

Flock

Flock è un browser con tutta una serie di funzioni per i social network e i blog. Disponibile per Mac, Linux e Windows propone una nuova esperienza di navigazione a chi, come me, possiede diversi account nei social network (FaceBook, Twitter, YouTube, … ) e vuole anche gestire i Feed RSS in modo armonico e rapido.

Installazione

Se avete FireFox (che non dovete disinstallare) tutte le vostre impostazioni possono essere trasferite in Flock durante il primo utilizzo: cookie, password, preferiti, tutto insomma. Dopo aver utilizzato Flock per qualche minuto, mi è venuto spontaneo rimuovere l’ottimo FeedReader, ormai inutile vista l’eccellente gestione dei Feed di Flock.

Caratteristiche

Oltre a possedere numerose caratteristiche simili a FireFox, cosa che lo rende immediatamente fruibile, Flock permette:

  • Blog Editor
    Semplice ma efficace editor per la pubblicazione di Post sui nostri Blog. Supporta sia Blog personali che piattaforme come WordPress, Blogger e Live Journal. Ottima la funzione “appunti”, la Web Clipboard, presente in varie sezioni del browser
  • Pannello People
    Tramite il semplice Drag & Drop è possibile condividere istantaneamente link ed immagini con i nostri contatti, recuperati da Twitter, Facebook, YouTube o Flickr
  • Media Bar
    Flock è in grado di riconoscere automaticamente numerose funzionalità quando si entra in un sito Web (Blog o Social Network). Ad esempio entrando in YouTube o Flickr verrà apera una Media Bar in alto dove è possibile scorrere orizzontalmente filmati e foto permettendo di inviare o copiare il contenuto immediatamente
  • Search Engine
    Anche la gestione della ricerca è del tutto personalizzabile (come accade già in FireFox grazie allo standard Open Search) permettendo di aggiungere facilmente tutta una serie di motori di ricerca alternativi, sia da una lista proposta sul sito di Flock sia tramite il riconoscimento automatico presente in un sito
  • Plugin ed estensioni
    Anche Flock come FireFox possiede già numerose estensioni, arma che si è rivelata vincente proprio per FireFox. Alcune sono specificatamente per Flock anche se è possibile trovare qualche “porting” di note estensioni per FireFox
  • Gestione dell’invio di foto
    Grazie al Photo Uploader è possibile utilizzare un’applicazione interna a Flock per inviare rapidamente le nostre foto su Flickr o Facebook.

Continua...

Safari, eliminare il blue border sui campi input

Safari, il browser Apple disponibile anche per Windows, produce un bordo blu (blue border) quando si clicca all’interno di un campo input. Se in alcuni casi può risultare piacevole, in altri diventa davvero fastidioso! Per eliminarlo basta inserire nel nostro foglio di stile:

1
2
/* ____________________________ remove blue border */
input { outline: 0 none }

O, in alternativa, direttamente come attributo nel tag input:

1
<input style="outline: 0 none" ... />

Continua...

Inserire del testo con i CSS: IE7, un pessimo affare

Ancora una volta, quando mi trovo a scrivere riguardo le capacità dei fogli di stile, sono costretto a porre in disparte Microsoft Internet Explorer! Con i CSS2 è stata introdotta una caratteristica davvero interessante, la proprietà content, usata in congiunzione con gli pseudo-elementi before e after. Tramite questo “stile” è possibile alterare il contenuto di un sito agendo esclusivamente sul file CSS. Ad esempio se scriviamo:

1
li:before { content: ">>" }

Un elenco puntato (UL, LI) avrà ogni elemento preceduto dai caratteri “>>”! Qualsiasi elemento, ovviamente, può essere trattato in questo modo:

1
<p>Posso inserire caratteri con i <span>fogli di stile</span></p>
1
p span:before { content: "-->" }

La versatilità di questo elemento non finisce qui! È infatti possibile utilizzare altri parametri oltre al semplice (ma utilissimo) testo. L’elemento content, infatti, permette anche valori speciali o url:

1
2
3
p:before { content: url(images/quote.gif) }
p:after { content: close-quote }
p:before { content: url(waves/sound.wav) }

Per i dettagli sull’implementazione fare riferimento direttamente a W3C – peccato non lo faccia anche Microsoft!

Continua...

FireFox 3 RC1 Acid 3

Acid 3 Test

Siamo sulla buona strada rispetto a prima! :)

Continua...

FireFox 3: non vedo l’ora

Mi trattengo da tempo dallo scaricare la versione beta di FireFox 3! Uso FireFox tutti i giorni quindi non voglio scasinare tutto per la fretta. Comunque sia, non vedo proprio l’ora che arrivi il rilascio ufficiale di questo fantastico browser, che con la release 3 promette meraviglie che ho avuto il piacere di provare su un’altra macchina (beta 5).

FireFox 3

Continua...

Four browsers: Acid 3 Test… una delusione

Parafrasando il film Four Brothers, ecco chi ha passato l’Acid 3 Test!

image

Da in alto a sinistra: IE7, Opera, Safari, FireFox! Tutte ultime versioni su Windows Vista 64 bit! Un disastro!! ;)

Continua...

Tunneling e proxy server per Ajax e non solo

A causa della sua capacità di comunicare con il server, l’oggetto XmlHttpRequest (XHR), usato nella tecnologia Ajax (acronimo di Asynchronous JavaScript and XML, la cui pronuncia dovrebbe essere “egiacs” anche se noi italiani preferiamo “aiacs”), ha un blocco di protezione che gli impedisce di eseguire richieste esterne al dominio in cui opera. Questa protezione è necessaria per impedire Injection Javascript (tecniche di “iniezione” di codice estremamente pericoloso con lo scopo di violare il sistema) di svariato tipo, con l’obiettivo ultimo di “irrompere” nel sistema.
Questo limite è oggi tenuto in seria considerazione e si sta pensando, in qualche modo, di risolverlo – direttamente nell’oggetto XmlHttpRequest - senza pregiudicare la sicurezza (vedi anche: Third proposal for cross-site extensions to XMLHttpRequest ).

Comunque sia la situazione oggi è la seguente:

XHR

Continua...



Stop SOPA