Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

Posts tagged with "twitter"

Interface utilisateur

, , , ...

Il y a peu j’ai twittéune pensée à brut d’une image connue :


La réponse de certain(e)s ne s’est pas fait attendre … Pour en arriver facilement à un futur dialogue.

Mais qu’en est-il en pratique… De ce que nous pouvons parler mais surtout faire.
Reprenons un peu brusquement :
Actuellement nous avons des interfaces utilisateurs qui ressemblent à ceci (comme le démontre l’image première) :


Que pouvons-nous constater ? Enormément de chose :

  • L’espace de la fenêtre est mal utilisé,
  • Les champs ne sont pas alignés,
  • Aucuns champs n’est renseigné comme obligatoire, (est-ce pour autant qu’il n’y a aucun contrôle et qu’au fait qu’on pousse sur Valider, cela nous renvoie la base complète des sociétés ?!!),
  • Les champs sont nombreux et non mis dans l’ordre, est-ce que l’ordre de tabulation est correct ?
  • Certains libellés ne sont pas affichés complètement…
  • Et bien d’autres tel : le nom des boutons n’est pas « significatif », pourquoi autant de bouton dans une fenêtre de recherche ? (peut-être faut-il alors repenser la recherche !)

Voyons maintenant ce que cela donnerait modifié !


Nous prenons en compte l’espace (coté gauche, coté droit, bas et espace des boutons), les champs sont alignés, sauf le premier qui est le requis afin d’attirer l’attention, en information est indiqué les champs optionnels, l’ordre de tabulation a été repensé… etc. etc.
En gros le formulaire est actuellement exploitable.

Mais… Pourquoi afficher les champs optionnels ? Ne peut-on pas les afficher uniquement sur demande ? Voyons cela :
  • Simplifions d’abord la fenêtre de recherche, que nous considérerons comme « normale » :

    Qu’avons-nous fait ? Suppression des champs inutiles, rajout d’un bouton permettant d’accéder à la recherche avancée (bien entendu chaque bouton dispose d’une infobulle !).

  • Par la suite, créons une nouvelle fenêtre de recherche avancée :

    Qu’avons-nous fait ? Simplement rajouté les champs de la fenêtre précédente… Et nous avons supprimé le bouton Annuler. Pourquoi disposer d’un bouton Annuler alors que nous demandons une recherche avancée ? Par contre nous gardons bien le bouton pour accéder à la recherche « normale ».


Est-ce pour autant la meilleure solution ?
Certainement pas, il n’y a pas de solution « standard », il n’y a qu’une approche supposée de l’utilisateur. Tout le monde ne peut pas le partager et tout le monde ne regarde pas l’infobulle par exemple avant de cliquer sur un bouton (et donc on peut se poser la question faut-il un bouton Annuler dans la recherche avancée ?) etc.

En gros l’ergonomie est une chose aussi complexe que la programmation dont elle dépend. Une fausse action ou une fausse idée, ou un bouton de trop ou trop, un changement flagrant dans les habitudes de l’utilisateur ne font pas avancer le schmilblik. Loin de là, il y aura un certain recul envers l’application.

A suivre avec un prochain Twunch.

Twitter, la proximité que Google n'a pas ?

, , , ...

Alors que j'écrivais il y a peu que Twitter est le Google de demain, voici un billet qui va dans ce sens : Taxonweb sur Firefox et MacOSX avec comme phrase retenue,


Un petit tour sur Twitter, ne me renseigne pas énormément. Une recherche dans les FAQ de taxonweb.be ne m'aide pas vraiment.

Une recherche approfondie dans Google me dirige sur un forum d'expats.


Twitter peut devenir (mais ne l'est pas encore) une excellente source d'information choisie, si pas la meilleure qui soit ; mais son potentiel dans le domaine est encore (malheureusement) faible face à ce géant qu'est Google (mais surtout spécialisé dans l'indexation d'information) et qui à orienté Marin vers les résultats corrects.

Twitter, le Google de demain ?

, , , ...

Alors que l’on parle de moins en moins de Microsoft dans les moteurs de recherches, voir même sur le Web malgré d’excellente sortie (Office Live, … ), on écoute facilement du bruit venant des réseaux sociaux tel que Facebook ou le micro-blogging (Twitter en excellence).

Si on prend ce dernier, il est le survivant (mais aussi le premier) d’une longue série d’application qui se sont lancées dans le micro-blogging sans avoir jamais réussi à percer… Ou à inquiéter.

Twitter, c’est bien, c’est fun, mais Twitter intelligemment c’est mieux (non non, je ne twitte pas intelligemment, tout du contraire) et avoir un bon réseau dans son micro-blogging est indispensable (là je pense avoir de très bonnes personnes !).
Mais pourquoi donc ?
Simplement le fait que je suis au courant bien avant qui que ce soit de ce qui se passe tant dans l’actualité (via les journalistes), dans le monde de la technologie (avec des technophiles de première), dans l’aide (avec des contacts spécialisés, une demande d’aide publiée reste rarement sans réponse dans un délai d’une dizaine de minute) etc.

Construire son Twitter est donc important, lui donner à manger aussi. Mais ce que j’apprécie parmis cela c’est que Twitter dans sa recherche ne me donne que les informations dont j’ai besoin ! En effet, c’est moi qui choisis les sources.
Tandis qu’au niveau de Google, je vise plus général. Tel est la grande différence… Et j’apprécie.

Google aurait-il quelque chose à craindre de ce coté ? Honnêtement non. Mais il perd en tout cas un domaine où il ne peut pas assurer dans la recherche.

Twitter Mosaic

,

Pour le fun et via Romain L., la Twitter Mosaic :D

Get your twitter mosaic here.

Je l'avoue que c'est inutile, mais c'est sympa. Fais grâce à Twitter Mosaïc...

Microblogging, la vague continue

, , , ...

Alors que je vous parlais il y a peu de microblogging, et je n’étais pas le seul, de nouveaux services apparaissent sur ces idées.
Ainsi Pownce est certainement plus aboutis comme plateforme, mais malheureusement, comme dans bien souvent des cas arrivent trop tard !

Pownce regroupe un réseau social, permettant tout comme Twitter d’envoyer des messages à un groupe d’amis.
Mais Pownce à la différence de Twitter est remplis d’interactions AJAX (certains diraient Web2.0 !) est plus beau, plus sympathique etc. Mais, ne parviendra pas à me faire changer de plateforme.

Par contre pour ceux qui désirent tester, j’ai 6 invitations à envoyer… Encore un grand merci à Eric M.

Blog et microbloging

, , , ...

A la lecture d'un billet d'une personne de ma twittosphère, je me dis que je suis victime du même syndrome que cette jeune femme.

Depuis que j'ai adoté Twitter, et le microbloging, je suis de moins en moins adepte du blog "normal" ! Je constate que je suis devenu accro de cette manière de communiquer. Simple, courte, efficace.

Est-ce que le microbloging, par sa simplicité, sa rapidité et sa ressemblance au SMS (texto pour nos amis français) va-t-il décrocher le bloging classique ?

D’un premier abord je ne dirais pas. Il est impossible de communiquer une idée, un avis correctement en 140 caractères ! Ah vous ne saviez pas que c’était 140 caractères ? Mais vous voila avertis.
En second temps, la communauté est majoritairement anglophone, comme le site lui-même. Malgré un succès croissant de la plateforme du coté français, ce n’est pas encore gagné de voir une équité.

J’ai l’impression que la plateforme de microbloging va encore gagner en puissance, mais à la longue cela va s’épuiser pour virer sur une sorte de « chat » privé et plus lent… Le but initial de dire ce que l’on fait sur l’instant présent est déjà pas suivis maintenant par tous et sert de moyen de communication ; ce qui est rassurant car je n’ai pas envie de savoir que monsieur Untel a été à la toilette à tel moment.

A suivre, mais je suis déjà conquis.

Twitter, validation de code

, , , ...

Dans la suite de ce billet, je découvre de plus en plus les services de Twitter et j'ai difficile à m'en passer au quotidien.

Cela permet en plus de mettre facilement un petit contenu en ligne, de maintenir un site un peu "up to date" par ce que l'on fait, ce que l'on peut lire, etc.

Malheureusement, il y a quelques défaut. Si vous insérez le code fournis (tant Adobe Flash que Javascript), vous n'aurez aucune validation par le W3C.

Alors pourquoi ne pas faire quelques modifications simples pour ceux qui désirent utiliser cela via le web :

  <!-- debut de Twitter -->
  <div id="twitter">
      <p>Le Groumphy en direct <a href="http://twitter.com/statuses/friends_timeline/6611282.rss"><img src="images/flux_rss.gif" alt="Flux RSS Twitter de Groumphy" class="img_rss"></a></p>
    <object id="flash_twitter_perso"
type="application/x-shockwave-flash" data="http://twitter.com/flash/twitter_badge.swf">
      <param name="movie" value="http://twitter.com/flash/twitter_badge.swf">
      <param name="FlashVars" value="color1=10066329&type=user&id=6611282">
      <param name="allowScriptAccess" value="always">
      <param name="wmode" value="transparent">
  <!-- debut alternatif 1 badge Twitter -->
<ul>
<li id="my_twitter_status"></li>
<li id="my_twitter_status_time"></li>
</ul>
<script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/6611282.json?callback=_twitterCallback&count=1"></script>
<!-- fin alternatif 1 badge Twitter -->
<!-- debut alternatif 2 badge twitter -->
    <p>Le Groumphy en direct <a href="http://twitter.com/statuses/user_timeline/6611282.rss"><img src="images/flux_rss.gif" alt="Flux RSS Twitter de Groumphy" class="img_rss"></a></p>
<!-- fin alternatif 2 badge twitter -->
</object>
    <p>Le Groumphy en direct et ceux qu'il lit <a href="http://twitter.com/statuses/friends_timeline/6611282.rss"><img src="images/flux_rss.gif" alt="Flux RSS Twitter de Groumphy" class="img_rss"></a></p>
    <object id="flash_twitter" type="application/x-shockwave-flash" data="http://static.twitter.com/flash/twitter_timeline_badge.swf">
      <param name="movie" value="http://static.twitter.com/flash/twitter_timeline_badge.swf">
      <param name="FlashVars" value="user_id=6611282&color1=0x999999&color2=0x999999&textColor1=0x5E5E5E&textColor2=0x0&backgroundColor=0xCCCCCC&textSize=12">
      <param name="allowScriptAccess" value="always">
      <param name="wmode" value="transparent">
      <!-- debut de Twitter (alternatif 1) -->
      <div id="twitter_txt">
        <ul id="twitter_list">
          <li id="texte_twitter">
          <li>
          <li id="temps_passe"></li>
        </ul>
        <script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/6611282.json?callback=twitterCallback&count=1"></script>
        <p><a href="http://twitter.com/statuses/friends_timeline/6611282.rss">Suivez ce que fais le Groumphy et ceux qu'il lit (RSS)</a></p>
      </div>
      <!-- fin de Twitter (alternatif 1)-->
      <!-- debut de Twitter (alternatif 2) -->
      <noscript>
      <p> <a href="http://twitter.com/statuses/friends_timeline/6611282.rss">Suivez ce que fais le Groumphy et ceux qu'il lit (RSS)</a> </p>
      </noscript>
      <!-- fin de Twitter (alternatif 2) -->
      <!-- debut de Twitter (alternatif 3) -->
      <p><a href="http://twitter.com/Groumphy">Suivez les aventures de Groumphy</a><p>
        <!-- fin de Twitter (alternatif 3) -->
    </object>
  </div>
  <!-- fin de Twitter -->


Vous n'aurez qu'à personnaliser votre ID dans les URI et le tour est joué. Un simple copier-collé vous fera j'espère gagner du temps.

Pour le javascript, j'ai préféré doubler une fonction en place de les rassembler dans l'éventualité où vous ne désireriez qu'une partie du code Twitter.

Voici donc le javascript :

function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta = delta + (relative_to.getTimezoneOffset() * 60);
    if (delta < 60) { return '(moins d\'une minute)'; } 
else if(delta < 120) { return '(il y \à une minute)'; } 
else if(delta < (45*60)) { return '(Il y \à' + (parseInt(delta / 60)).toString() + ' minutes)'; } 
else if(delta < (90*60)) { return '(Il y \à une heure)'; } 
else if(delta < (24*60*60)) { return '(plus de ' + (parseInt(delta / 3600)).toString() + ' heures)'; } 
else if(delta < (48*60*60)) { return '(Il y \à un jour)'; } 
else { return '(Il y \à ' + (parseInt(delta / 86400)).toString() + ' jours'; } }  
function twitterCallback(obj) {
var id = obj[0].user.id;
document.getElementById('texte_twitter').innerHTML = obj[0].text;
document.getElementById('temps_passe').innerHTML = relative_time(obj[0].created_at); }
function _twitterCallback(obj) {
var id = obj[0].user.id;
document.getElementById('my_twitter_status').innerHTML = obj[0].text;
document.getElementById('my_twitter_status_time').innerHTML = relative_time(obj[0].created_at);
}


En espérant à nouveau plein de découverte...

Élections 2007 : Donnez vos impressions en direct !

, , , ...

Je vous en parlais il y a peu que Damien Vanachter, le blogueur fou de PureFM sur PureBlog, allais faire un flux spécial élection, ce qui se passe dans les coulisses et ce que ressente les électeurs minutes par minutes, voici que je peux participer à ce challenge !

C’est donc parti pour un W.E. spécial élection. En effet, ma décision est prise, je bloguerais donc les premières impressions, mon devoir, lorsque cela est fait. Etc.
C’est donc un ou deux billets qui paraîtront là-dessus, rien que là-dessus ! Mais aussi un rendez-vous sur mon site : www.groumphy.net avec Twitter.

En effet, ce ne sera pas non seulement un ou deux billets édictés mais bien les impressions en direct ! Vous désirez faire de même ? N’hésitez pas un seul instant à prendre contact avec Damien Vanachter.

Quelques liens...

, , , ...

Ce qui m'a marqué sur le Web ces quelques jours !

Read more...

Microbloging, Twitter et Google Reader

, , , ...

Suite à un horaire léger, j’ai pu consacrer un peu de temps à l’article d’hier sur le microblogging.
J’ai pu donc tester légèrement l’application de Twitter… J’ai pu en tirer les conclusions qu’il est simple d’utilisation, que ce que je vous ai dis hier n’étais pas que des « conneries » et autres de ce style… Mais en plus il procure un certain amusement à être complété.

Mais je n’ai pas fais que cela, j’ai aussi récupéré les données de Google Reader qui étaient partagé afin de remodifier la fonction. La modifier est un bien grand mot, je dirais plutôt l’éclaircir, et la rendre compréhensible.

Au fil de la journée, je suis arrivé à un résultat assez pertinent, qui semble valider, et accessible malgré les technologies utilisées : Adobe Flash, Javascript, etc.
Disons qu’il faudrais séparer les deux : l’un est accessible, l’autre pas ?

Afin de partager cela, je vous cite ci-dessous le code source :

HTML :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Twitter Party Badge</title>
<script type="text/javascript" src="groumphy.js"></script>
</head>
<body>
<!-- 
Service Twitter et Google Reader (Shared)
Auteur : Google Inc., Twitter
Modification : Groumphy
Copyright : respectif aux scripts 
Version : 1.0.0 alpha
--> 
<div id="twitter_and_googlereader">
<!-- debut de Twitter --> 
<div>
<object 
type="application/x-shockwave-flash" data="http://static.twitter.com/flash/twitter_timeline_badge.swf" 
width="250" 
height="600">
<param name="movie" value="http://static.twitter.com/flash/twitter_timeline_badge.swf">
<param name="FlashVars" value="user_id=6611282&color1=0x999999&color2=0x999999&textColor1=0x5E5E5E&textColor2=0x0&backgroundColor=0xCCCCCC&textSize=12">
<param name="allowScriptAccess" value="always">
<param name="wmode" value="transparent">
<!-- debut de Twitter (alternatif 1) --> 
<div id="twitter">
<ul id="twitter_list">
<li id="texte_twitter"><li>
<li id="temps_passe"></li>
</ul>
<script type="text/javascript" src="http://www.twitter.com/statuses/user_timeline/6611282.json?callback=twitterCallback&count=1"></script>
<p><a href="http://twitter.com/statuses/friends_timeline/6611282.rss">Suivez ce que fais le Groumphy (RSS)</a></p>
</div>
<!-- fin de Twitter (alternatif 1)-->
<!-- debut de Twitter (alternatif 2) -->
<noscript>
<p>
<a href="http://twitter.com/statuses/friends_timeline/6611282.rss">Suivez ce que fais le Groumphy (RSS)</a>
</p>
</noscript>
<!-- fin de Twitter (alternatif 3) -->
<!-- debut de Twitter (alternatif 4) -->
<p><a href="http://twitter.com/Groumphy">Suivez les aventures de Groumphy</a><p>
<!-- fin de Twitter (alternatif 4) -->
</object>
<p><a href="http://twitter.com/statuses/friends_timeline/6611282.rss">Suivez ce que fais le Groumphy (RSS)</a></p>
</div>
<!-- fin de Twitter --> 
<!-- debut de Google Reader --> 
<div id="google_reader">
<script type="text/javascript" src="http://www.google.com/reader/public/javascript/user/15343427923727093981/state/com.google/broadcast?n=10&callback=GRC_p(%7Bc%3A%22gray%22%2Ct%3A%22Je%20lis%20en%20ce%20moment%22%2Cs%3A%22true%22%7D)%3Bnew%20GRC"></script>
<noscript><p><a href="http://www.google.com/reader/public/atom/user/15343427923727093981/state/com.google/broadcast">Lisez ce que lis le Groumphy(RSS)</a></p></noscript>
<p><a href="http://www.google.com/reader/public/atom/user/15343427923727093981/state/com.google/broadcast">Lisez ce que lis le Groumphy(RSS)</a></p>
</div>
<!-- fin de Google Reader --> 
</div> 
</body>
</html>


En Javascript, cela donne :
// ---------------------------------------------------------------
// Script de partage de flux de Google Reader (labs)
// Auteur : Google Inc. (c) 2006
// Modification : Groumphy.net (c) 2007
// Information : v.Labs 1.0
// ---------------------------------------------------------------
(function (){
var z = "/reader/shared/";;;
var G = G || { }, 
H = this;
if(!Function.prototype.apply){
Function.prototype.apply = function(a,b){
var c = [],
d,
g;
if(!a) a = H;
if(!b) b = [];
for(var e = 0; e < b.length; e++){ 
c[e] = "args[" + e + "]" }
g = "oScope.__applyTemp__.peek().(" + c.join(",") + ");";
if(!a.__applyTemp__){ 
a.__applyTemp__ = [] } 
a.__applyTemp__.push(this);
d = eval(g);
a.__applyTemp__.pop();
return d } };
if(!Array.prototype.push){
Array.prototype.push = function(){
for(var a = 0; a < arguments.length; a++){ 
this[this.length] = arguments[a] }
return this.length } }
if(!Array.prototype.pop){ 
Array.prototype.pop= function(){ 
var a;
if(this.length){
a = this[this.length-1];
this.length--}
return a } }
Array.prototype.peek = function(){ 
return this[this.length-1] };
if(!Array.prototype.shift){
Array.prototype.shift = function(){
var a;
if(this.length){
a = this[0];
for( var b = 0; b < this.length-1; b++){ 
this[b] = this[b+1] }
this.length-- }
return a } }
if(!Array.prototype.unshift){ 
Array.prototype.unshift = function(){ 
var a = arguments.length;
for(var b = this.length-1; b >= 0; b--){ 
this[b+a] = this[b] }
for(var c = 0; c < a; c++){ 
this[c] = arguments[c] } 
return this.length } } 
var I = function(a){ return/^\s*$/.test(a) }, 
J = function(a){ return I(K(a)) }, 
K = function(a){ return a == null ? "":String(a) }, 
x = new p;
function p(){ 
if(document.all){ this.r = true } 
else { this.r = false } 
this.O = "pop" in Array.prototype;
this.z = "contains" in document;
this.M = "implementation" in document && "createDocument" in document.implementation;
this.L = "compatMode" in document; 
this.N = "XMLHttpRequest" in window; 
vara = navigator.userAgent, 
b = /\(.*\) AppleWebKit\/(.*) \((.*)/.exec(a);
if(b){ this.B = true; this.Q = parseInt(b[1],10) } 
else{ this.B = false } 
this.A = window.opera;
this.P = a.indexOf("Wii")!= -1 }
p.prototype.n = function(){
return this.r && !this.z && !this.o() };
p.prototype.o = function(){ 
return this.A };
function v(a,b){ 
var c = b || document; 
return c.getElementById(a) }
function i(a,b,c){ 
var d = c || document, g = d.createElement(a);
if(b){ for(var e in b){
var h = b[e];
if(x.n() && e == "class"){ 
e = "className" }
g.setAttribute(e,h) } }
return g }
function j(a){ 
return document.createTextNode(a) } 
var C = function(a){ 
if(!a) return "";
var b = /<[^>]*>/gi; 
return a.replace(b,"") };
function D(a,b){
if(a.length <= b){ return a}
var c = a.split(/\s+/);
a = [];
for(var d = 0; d < c.length && a.join(" ").length <= b; d++){
a.push(c[d]) } 
a = a.join(" ");
if(d != c.length){ a += "..."} 
return a}
var m = {}, 
y = { blue: {f:"#fff", 
e:"#bccceb", 
k:"#090992", 
j:"#bccceb", 
i:"#1010c8", 
d:"#7a7ee0", 
h:"#e5ecf9", 
b:"#898de9" },
green: {f:"#fff", 
e:"#d8dbbc", 
k:"#2d8509", 
j:"#d8dbbc", 
i:"#58bf2f", 
d:"#97e07a", 
h:"#f5fbeb", 
b:"#adb094" },
slate: {f:"#123", 
e:"#345", 
k:"#5e805e", 
j:"#5e6f80", 
i:"#abc", 
d:"#5e6f80", 
h:"#152939", 
b:"#abc" },
gray:{ f:"#fff", 
e:"#ccc", 
k:"#666", 
j:"#ccc", 
i:"#999", 
d:"#ccc", 
h:"#eee", 
b:"#aaa" },
khaki:{f:"#f2e9ca", 
e:"#8e7c6a", 
k:"#d52", 
j:"#cba", 
i:"#543", 
d:"#ba9", 
h:"#eae0c6", 
b:"#987" },
pink:{ f:"#fff", 
e:"#aaa", 
k:"#d69", 
j:"#ddd", 
i:"#e684ad", 
d:"#ebc", 
h:"#fcf0f7", 
b:"#a88" },
black:{f:"#000", 
e:"#aaa", 
k:"#ccc", 
j:"#d8dbbc", 
i:"#d52", 
d:"#7a2b0e", 
h:"#111", 
b:"#999" } },
u = {margin:0, 
padding:0, 
background:"transparent none", 
border:"none", 
textAlign:"left", 
textIndent:"0",
textDecoration:"none", 
fontWeight:"normal" };
function k(a,b){ 
//this.l = "readerpublishermodule" + this.p();
this.l = "id_div_googlereader" + this.p();
this.g = a; 
this.u = m["c"];
this.v = m["t"];
this.K = m["s"] == "true";
if(b){ 
b.innerHTML = ""; 
b.id = this.l; 
this.m(v(this.l)) } 
else{
document.write('<div id="' + this.l + '" class="reader-publisher-module"></div>');
var c = this;
window.setTimeout( function(){ c.m(v(c.l)) }, 0) } }
k.prototype.p = function(){ 
if(!("GRC_c" in window)){ window["GRC_c"] = 0 }
return window["GRC_c"]++ };
function A(a){ m =a }
k.prototype.m = function(a){ 
function b(F){ 
return F }
var c = this.q(); 
this.a(c.J, a);
if(this.v){ 
var d = i("h3");
this.a(c.I, d);
d.appendChild(j(this.v));
a.appendChild(d) }
var g = i("ul");
this.a(c.H, g);
for( var e = 0, h; h = this.g.items[e]; e++){ 
if(!h.alternate){ continue }
var o = i("li");
this.a(c.G, o); 
var t = i("a",{href:b(h.alternate.href), 
title:h.title, 
"class":"i" });
this.a(c.C, t);
var f = C(h.title);
if(!J(f)){ f = D(f,48) }
t.appendChild(j(f));
o.appendChild(t);
if(this.K && h.origin.title){ 
var q = h.origin, 
l = i("div", { 
"class":"s" });
this.a(c.F, l);
o.appendChild(l);
l.appendChild(j(" from "));
var f = q.title;
if(f.length > 48){ 
f = f.substring(0,48) }
if(q.htmlUrl){ var r = i("a", { 
href:b(q.htmlUrl), 
title:f });
this.a(c.D,r);
r.appendChild(j(f));
l.appendChild(r) } 
else{ l.appendChild(j(f)) } }
g.appendChild(o) }
a.appendChild(g);
var s = i("div", {
"class":"f"});
this.a(c.w, s);
if(this.g.id){ 
var w = this.g.id.indexOf("feed/") == 0, 
E = this.g.alternate && this.g.alternate.href;
if(!w || E){ 
var n = i("a"); 
this.a(c.b, n); 
//n.href = w ? this.g.alternate.href:"http://www.google.com" + z + this.g.id;
n.href = w ? this.g.alternate.href:"http://my.opera.com/groumphy";
n.appendChild(j("Lire plus..."));
s.appendChild(n) } }
a.appendChild(s)};
k.prototype.q = function(){ 
if(this.u == "-"){ 
return{ } }
var a = y[this.u];
return{
J:{ fontFamily:"arial, sans-serif", 
fontSize:"10pt", 
MozBorderRadius:"8px", 
background:a.f,
border:"solid 4px " +a.e,
margin:"0.5em" },
I:{ padding:"0.2em 0",
margin:"0 0.5em",
MozBorderRadius:"8px 8px 0 0",
borderBottom:"solid 1px " + a.j,
color:a.k },
H:{ padding:"0.2em", 
margin:"0 0.5em", 
overflow:"hidden" },
G:{ listStyleType:"none",
padding:"0.4em 0 0.4em 0" },
C:{ color:a.i, 
borderBottom:"solid 1px " + a.d },
F:{ paddingLeft:"0.5em", 
color:a.d },
D:{ color:a.d },
w:{textAlign:"right",
borderTop:"solid 1px " +a.e,
background:a.h,
MozBorderRadius:"0 0 4px 4px",
padding:"0.2em 8px", 
fontSize:"small",
whiteSpace:"nowrap" },
b:{ color:a.b,
textDecoration:"underline" } } };
k.prototype.a = function(a,b){ 
if(!a) return;
B(b);
for(var c in a){ 
b.style[c] = a[c] } };
function B(a){ 
for(var b in u){ 
a.style[b] = u[b] } }
window["GRC_p"] = A;
window["GRC"] = k; })();

// ---------------------------------------------------------------
// Script de boite Twitter, pour le microblogging
// Auteur : Twitter (c) 2007
// Modification : Groumphy.net (c) 2007
// Information : 1.0.1modification par Groumphy 06.06.2007
//1.0 version originale
// ---------------------------------------------------------------
function relative_time(time_value) {
    var values = time_value.split(" ");
    time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta = delta + (relative_to.getTimezoneOffset() * 60);
    if (delta < 60) { return '(moins d\'une minute)'; } 
else if(delta < 120) { return '(il y \à une minute)'; } 
else if(delta < (45*60)) { return '(Il y \à' + (parseInt(delta / 60)).toString() + ' minutes)'; } 
else if(delta < (90*60)) { return '(Il y \à une heure)'; } 
else if(delta < (24*60*60)) { return '(plus de ' + (parseInt(delta / 3600)).toString() + ' heures)'; } 
else if(delta < (48*60*60)) { return '(Il y \à un jour)'; } 
else { return '(Il y \à ' + (parseInt(delta / 86400)).toString() + ' jours'; } }  
function twitterCallback(obj) {
var id = obj[0].user.id;
document.getElementById('texte_twitter').innerHTML = obj[0].text;
document.getElementById('temps_passe').innerHTML = relative_time(obj[0].created_at); }

Intéressé ? Simple, modifier quelques variables, et le tour est joué !
Pour voir le résultat opérationnel encore en test, rendez-vous sur Groumphy.net !
Mais je me pose encore quelques questions… Faut-il faire un rafraichissement de la page toutes les X minutes (afin de garder le contenu à jour pour le visiteur) ? N’y a-t-il pas déjà un service qui offre cela (tout combiné dans la même plateforme) ? Etc.

Information : pour le code, l'indentation n'est pas présente.

Microblogging

, , ,

Alors que les blogs sont en pleine expension, que nous savons que si un blog passe les premiers six mois et qu’il passe une année entière, celui-ci aura la chance de survivre (ou du moins de rester en vie plus longtemps), nous voyons de plus en plus de plateforme émerger dans des idées les plus originales qui soit.

A la lecture du billet de Shoob j’ai décidé de tester une nouvelle plateforme de blog.
Mais pas n’importe quelle plateforme : une plateforme de microblogging, Twitter(uk).

La première étape, est évidement l’inscription. Par après quelques étapes de configuration et une bonne nouvelle : cela semble fonctionner plutôt correctement sur des navigateurs alternatifs ; en effet, il s’agit d’une simple application Adobe Flash (v9 pour être précis), suscitant toutefois quelques craintes pour les utilisateurs Linux.

En second temps, tout semble personnalisable, adaptable à ce que l’on a besoin et l’insertion est facilité par les codes en ligne. Par contre sur ce dernier point, il reste bien entendu l’accessibilité, la standardisation qui ne semble pas respecté ; lacune vite comblée si vous remanier le code… (Je pense même le fournir au besoin…)

Enfin, il faut bien évidement l’insérer sur son site… Et pour mettre son microblog à jour, une simple connexion à la plateforme de microblogging, insertion du texte… Et le tour est joué !

Simple comme qui dirais bonjour. Nous allons voir…

Mais maintenant viendrais les questions un peu plus complèxe, à quoi bon sert cette plateforme, à quoi bon peut-elle nous avancer alors que nous disposons déjà d’un blog ?
Pour des nouvelles simples, sur lesquelles nous n’aurions pas envie, pas le temps de faire un billet… Mais aussi pour les fanas du blogging de dire ce qu’il font en minute, de ne pas laisser une nouvelle périr, un p’tit lien rapide etc.

En bref, de l’interactivité, de la mise à jour, … Tout plein de bonnes choses !
Chez moi cela se passera sur la page principale de mon site (encore en construction, oui je sais ; www.groumphy.net) et de plus il y aura même un flux RSS.

Affaire à suivre, mais avez-vous déjà des réactions positives ou non par rapport au microblogging ?
November 2009
M T W T F S S
October 2009December 2009
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30