I Mozilla Labs hanno svelato un progetto open-source che permetterebbe di estendere e personalizzare il web tramite alcuni add-on per Firefox. Il progetto, denominato “Jet Pack” permetterebbe agli sviluppatori di estensioni e add-on per Firefox di creare applicazioni a un livello più alto di quello attuale, sicure, facili da installare e valutabili velocemente. Le applicazioni potrebbero essere facilmente integrate nel browser senza bisogno di riavviarlo e senza creare problemi d’incompatibilità .
Jetpack è sostanzialmente una raccolta di API che consente agli sviluppatori di creare applicazioni sfruttando tecnologie quali HTML, CSS e JavaScript che potrebbero diventare l’equivalente di quello che è l’AppStore per Apple. A detta di Mozilla, molte applicazioni si possono creare con poche dozzine di righe di codice. All’indirizzo jetpack.mozillalabs.com è possibile consultare numerosi video, la documentazione ma anche installare e provare le API insieme con alcune aggiunte già realizzate e in grado di interagire con GMail, Google Reader, Facebook, Twitter ma anche Delicious e DeviantArt.
// 1. Configura l'URL e l'identificativo esatto per questo articolo
var disqus_config = function () {
this.page.url = window.location.href.split('?')[0]; // Prende l'URL pulito della pagina
this.page.identifier = window.location.pathname; // Usa il percorso come ID univoco
};
document.addEventListener("DOMContentLoaded", function() {
var disqus_shortname = 'macitynet'; // INSERISCI QUI IL TUO SHORTNAME DISQUS
var disqus_loaded = false;
function loadDisqus() {
if (!disqus_loaded) {
disqus_loaded = true;
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.setAttribute('data-timestamp', +new Date()); // Obbligatorio per le nuove policy Disqus
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}
}
// 2. Lazy load: carica quando arrivi al div
var observer = new IntersectionObserver(function(entries) {
if(entries[0].isIntersecting === true) {
loadDisqus();
observer.disconnect();
}
}, { threshold: [0] });
// Se l'elemento esiste, avvia l'osservatore
var thread = document.getElementById("disqus_thread");
if(thread) observer.observe(thread);
});