Ubiquity, ou comment mieux exploiter le Net

[center][/center]

J’avoue qu’après avoir regardé la présentation de Mozilla Labs sur Ubiquity, j’étais vexé. Vexé de ne même pas avoir pensé au “problème” exposé, et donc encore moins à une solution possible. Et pourtant, il est évident qu’Ubiquity (et sûrement d’autres travaux en route dans d’autres labos) va révolutionner d’ici quelques années nos habitudes. Terminé les copier / coller à outrance et autres manipulations fastidieuses. Quelques mots clés dans une interface “intelligente” et paf, voilà un mail qui intègre une carte du lieu de rendez-vous, une critique du resto prévu et que sais-je encore.

Le prototype est encore en version très très alpha (you know what I mean) mais les perspectives sont bluffantes. Surtout que je ne serais pas étonné de voir ce genre de chose se propager, pour finalement toucher, influencer nos systèmes d’exploitation. C’est ce que fait déjà Quicksilver sur Mac OS, de manière finalement bien primaire quand on voit les idées avancées par Ubiquity.

Je viens de tester et c’est assez impressionnant. j’ai hâte de voir les futures versions :slight_smile:

C’est vraiment énorme, après faut voir à l’utilisation si ça se popularise, mais c’est pas loin des trucs qu’on voyait en rigolant dans Hackers :x

Edit: ahah y a déjà une commande pour Wowhead, ils sont partout :slight_smile:

Ah ouais, vraiment impressionnant.

Ce qui est vraiment intéressant c’est que ça a l’air de demander peu d’investissement pour “rajouter” des services.
Sinon +1, c’est quand qu’on a ça dans les OS aussi et pas que que sur des applics web ?

Yep, j’ai installé ca hier, et je saisis vraiment pas encore tout le potentiel, meme si c’est certains qu’il y en a. Un peu comme spotlight, quicksilver, launchy, le menu demarrer de vista, etc. Ya moyen de comboter partout partout, et ca, c’est bien.

:slight_smile: C’est juste très impressionnant.

Ce message est provisoirement masqué suite à des signalements de la communauté.

[quote=“guts, post:7, topic: 48096”]oui oui impressionnant tout ça aussi mais on fait comment pour lui dire de nous linker le wikipédia et le google français?

Pasque ça m’a vraiment emballé ce truc ![/quote]

Y a un tutorial la, mais je suis une bille en dev

Ce message est provisoirement masqué suite à des signalements de la communauté.

Ce que promet la vidéo est génial!
Je vais tester.
Deux réserves avant d’avoir testé:
-pas sûr que ce soit si user-friendly pour les gens qui ne se débrouillent pas déjà bien sur le web. Il faut connaitre des termes, des services…
-ça ne risque pas de donner le monopole à certains sites? Google map, Twitter, le site de notation des restos dont j’ai plus le nom mais dont on reconnait les icones…

Allez, j’installe et je vois demain.

[quote=“JeeP, post:10, topic: 48096”]Ce que promet la vidéo est génial!
Je vais tester.
Deux réserves avant d’avoir testé:
-pas sûr que ce soit si user-friendly pour les gens qui ne se débrouillent pas déjà bien sur le web. Il faut connaitre des termes, des services…
-ça ne risque pas de donner le monopole à certains sites? Google map, Twitter, le site de notation des restos dont j’ai plus le nom mais dont on reconnait les icones…

Allez, j’installe et je vois demain.[/quote]
Pareil

Bussiere

J’avais fait marché une version de wikipedia en français dans la zone de test (ctrl-espace, “command-editor”) en modifiant un peu des trucs dans les commandes de bases (builtincmd.js dans /chrome/content du répértoire d’extension d’Ubiquity).

On a

[codebox]/* TODO

  • apply CSS max-height & overflow-y to summary container

*/

function openUrl(url, postData) {
var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var browserWindow = windowManager.getMostRecentWindow(“navigator:browser”);
var browser = browserWindow.getBrowser();

if(browser.mCurrentBrowser.currentURI.spec == “about:blank”)
browserWindow.loadURI(url, null, postData, false);
else
browser.loadOneTab(url, null, null, postData, false, false);
}

function fetchWikipediaArticle(previewBlock, articleTitle) {
var apiUrl = “http://en.wikipedia.org/w/api.php”;
var apiParams = {
format: “json”,
action: “parse”,
page: articleTitle
};

jQuery.ajax({
type: “GET”,
url: apiUrl,
data: apiParams,
datatype: “string”,
error: function() {
previewBlock.innerHTML = “Error retreiving summary.”;
},
success: function(responseData) {
responseData = Utils.decodeJson(responseData);

  var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div");
  tempElement.innerHTML = responseData.parse.text["*"];

  //take only the text from summary because links won't work either way
  var articleSummary = jQuery(tempElement).find('p').eq(0).text();
  //remove citations [3], [citation needed], etc.
  //TODO: also remove audio links (.audiolink & .audiolinkinfo)
  articleSummary = articleSummary.replace(/\[([^\]]+)\]/g,"");

  //TODO: remove "may refer to" summaries

  var articleImageSrc = jQuery(tempElement).find(".infobox img").attr("src") ||
  jQuery(tempElement).find(".thumbimage").attr("src");

  var previewTemplate = "<img src=\"${img}\" style=\"float: left; max-width: 80px; max-height: 80px; background-color: white;\" />" +
  "<span class=\"wikisummary\">${summary}</span>";

  var previewData = {
    img: articleImageSrc,
    summary: articleSummary
  };

  previewBlock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);
}

});
}

CmdUtils.CreateCommand({
name: “wikipedia”,
takes: {search: noun_arb_text},
locale: “en-US”,
homepage: “http://theunfocused.net/moz/ubiquity/verbs/”,
author: {name: “Blair McBride”, email: "blair@theunfocused.net"},
license: “MPL”,
icon: “http://en.wikipedia.org/favicon.ico”,
description: “Searches Wikipedia for your words.”,
preview: function(previewBlock, directObject) {
var apiUrl = “http://en.wikipedia.org/w/api.php”;

var searchText = jQuery.trim(directObject.text);
if(searchText.length < 1) {
  previewBlock.innerHTML = "Searches Wikipedia";
  return;
}

var previewTemplate = "Searching Wikipedia for <b>${query}</b> ...";
var previewData = {query: searchText};
previewBlock.innerHTML = CmdUtils.renderTemplate(previewTemplate, previewData);

var apiParams = {
  format: "json",
  action: "query",
  list: "search",
  srlimit: 5, // is this a good limit?
  srwhat: "text",
  srsearch: searchText
};

jQuery.ajax({
  type: "GET",
  url: apiUrl,
  data: apiParams,
  datatype: "string",
  error: function() {
    previewBlock.innerHTML = "Error searching Wikipedia";
  },
  success: function(searchReponse) {
    searchReponse = Utils.decodeJson(searchReponse);

    if(!("query" in searchReponse && "search" in searchReponse.query)) {
      previewBlock.innerHTML = "Error searching Wikipedia";
      return;
    }

    function generateWikipediaLink(title) {
      var wikipediaUrl = "http://en.wikipedia.org/wiki/";
      return wikipediaUrl + title.replace(/ /g, "_");
    }

    previewData = {
      query: searchText,
      results: searchReponse.query.search,
      _MODIFIERS: {wikilink: generateWikipediaLink}
    };

    previewBlock.innerHTML = CmdUtils.renderTemplate({file:"wikipedia.html"}, previewData);

    jQuery(previewBlock).find("div[wikiarticle]").each(function() {
      var article = jQuery(this).attr("wikiarticle");
      fetchWikipediaArticle(this, article);
    });

  }
});

},
execute: function(directObject) {
var searchUrl = “http://en.wikipedia.org/wiki/Special:Search”;
var searchParams = {search: directObject.text};
openUrl(searchUrl + Utils.paramsToString(searchParams));
}
});[/codebox]

à la base, on remplace tout ce qui est “en.wikipedia.org” par “fr.wikipedia.org” et on change

CmdUtils.CreateCommand({ name: "wikipedia",

CmdUtils.CreateCommand({ name: "wikipedia-fr",
pour pouvoir accéder à la commande en français.

Par contre, si on inclut tout ça dans un .js et qu’on installe ça comme ça devrait l’être, ça entre en conflit avec la commande wikipedia de base (si vous voyez wikipedia-fr dans le herd, c’est moi !). Et ça, même en changeant “function fetchWikipediaArticle” par “function fetchWikipediaFRArticle” (et tout ce qui pointe vers cette fonction).
Je sais pas qu’est-ce que j’aurai pu oublier (je suis très débutant en javascript, de toute façon).

Ce message est provisoirement masqué suite à des signalements de la communauté.

Là ou cela sera vraiment sur puissant c’est le jour où cela intégré à l’OS et à tous les logiciels de façon aussi transparente. Là pour l’instant c’est encore un peu limité je trouve mais bien sur je pense que cela va vite devenir énorme.

Edit: Je me réponds à moi-même: Ils sont en train de le faire en même temps. C’est la même équipe qui développe les deux projets.

Finalement, j’ai juste mal copié-collé un truc.

Voilà la bonne commande. L’astuce marche aussi pour n’importe quel sous-domaine de wikipedia (de, pl, es, eo …)

je viens de le tester à l’instant, c’est très impressionnant et particulièrement intuitif.

Hahaha: http://www.microsoft.com/windows/internet-…d=1&catid=1
Je rêve ou c’est grosso-modo la même chose (avec la souris au lieu du clavier)?

Très prometteur ! Enfin le Web 3.0 ?

C’est bluffant. J’ai hate que ce soit disponible en release !

Installé ce matin :slight_smile:

Comme tout le monde je suis bluffé.