Liste de partage de Grorico
Le montage et le plan de vue principal a été réalisé par Alain Crenn. Suite à un problème de fonctionnement du micro-cravate, la bande sonore a été prise sur la caméra prévue pour le second plan et peut paraître légèrement décalé par rapport à l'image à certains moments.
Vous pouvez télécharger la vidéo au format ogg/theora ou flv.
lien 1 : Vidéo au format ouvert OGG/theora [443 Mio]
lien 2 : Vidéo au format FLV [434 Mio]
(...)
(photo DR)
![]()
HTML 5 arrive peu à peu dans nos navigateurs et cherche à standardiser certains aspects du Web : vidéo, offline, ….et push serveur. Autrement formulé, la possibilité de faire des communications bi-directionnelles entre un navigateur et un serveur.
Il existe plusieurs manières de monter une architecture push mais HTML 5 définit les WebSocket dont le principe est simple : le navigateur maintient un lien permanent avec le serveur (grâce à une WebSocket). On parle alors de long polling request (Comet).
Les WebSocket standardisent les API JavaScript mises à disposition par le navigateur pour rendre disponible le push. Ainsi HTML 5 définit un objet de type WebSocket sur lequel on définit trois callbacks que sont, bien évidemment, onopen, onmessage, onclose.
La boîte à outil du push
Côté client, on s’appuiera sur des implémentations d’HTML 5 des navigateurs comme Google Chrome.
Côté serveur, la dernière version de Jetty (7.0.1.v20091125) propose une implémentation des servlets capable de gérer les WebSocket mais on peut noter que la norme Servlet 3 amènera son lot d’évolutions sur cet aspect en incluant un mécanisme d’exécution asynchrone (défini par annotation sur la classe d’implémentation de la servlet)
Voici un exemple (avec Jetty) pour s’en convaincre: une interface de chat permettant à plusieurs utilisateurs d’envoyer des messages aux autres participants.
Configuration serveur
Si vous utilisez Maven, un module dédié est à intégrer pour bénéficier des WebSocket:
org.eclipse.jetty
jetty-websocket
${jetty.version}
Le code serveur se représente sous la forme de servlets. La déclaration se fait dans le descripteur de déploiement (web.xml) de votre webapp.
Notre servlet de chat doit hériter d’une classe WebSocketServlet fournie par Jetty. Cette classe diffère d’une servlet « classique » par la présence d’une méthode invoquée à l’ouverture de la connexion:
protected WebSocket doWebSocketConnect(HttpServletRequest request, String protocol)
Cette méthode permet de créer l’objet WebSocket qui sera le pivot d’échange entre le code JavaScript et le code serveur. Dans le cas du chat, le message reçu par un des membres connecté devra être envoyé à l’ensemble des utilisateurs du chat:
protected WebSocket doWebSocketConnect(HttpServletRequest request,
String protocol) {
return new ChatWebSocket();
}
class ChatWebSocket implements WebSocket {
private Outbound channel;
public void onConnect(Outbound outbound) {
channel = outbound;
membersWS.add(this);
LOG.info("New chat client connected");
}
public void onMessage(byte frame, byte[] data, int offset, int length) {
//skipped
}
public void onMessage(byte frame, String data) {
for (ChatWebSocket memberWS : membersWS) {
try {
memberWS.channel.sendMessage(frame, data);
} catch (IOException e) {
LOG.error("Erro when sending chat message",e);
}
}
}
public void onDisconnect() {
membersWS.remove(this);
}
}
Configuration client
Dans Google Chrome, pas besoin de framework JavaScript pour coder notre chat. Il reste cependant à utiliser les API fournies par le navigateur. Dans l’exemple ci-dessous, un objet de type WebSocket est créé et les callbacks implémentées
var room = {
join: function(name) {
this._username=name;
var location = "ws://localhost:8080/chat/chat";
this._ws=new WebSocket(location);
this._ws.onopen=this._onopen;
this._ws.onmessage=this._onmessage;
this._ws.onclose=this._onclose;
},
send: function(user,message){
...
this._ws.send(user+':'+message);
},
_onmessage: function(m) {
if (m.data){
var c=m.data.indexOf(':');
var from=m.data.substring(0,c).replace('< ','<').replace('>','>');
var text=m.data.substring(c+1).replace('< ','<').replace('>','>');
//ajoute les différents éléments à la page HTML
elementHTML.innerHTML=text;
...
}
},
...
};
Enfin, on définit l’interaction utilisateur
$('sendB').onclick = function(event) {
room.send(//passe le texte saisi par l'utilisateur dans le formulaire );
...
};
Le push est donc de plus en plus accessible. D’autres évolutions sont à prévoir notamment pour contourner la limitation de la Same Origin Policy. Des spécifications W3C sont en cours et ont pour but de pouvoir effectuer des appels Ajax cross domain. Jetty quant à lui propose des implémentations de ce draft.
Sources
- http://blogs.webtide.com/gregw/entry/how_to_improve_websocket
- http://blogs.webtide.com/sbordet/entry/jquery_comet_implementation_available
Le délit de négligence caractérisée prévu par Hadopi, et sanctionnant un internaute n’ayant pas correctement sécurisé son accès WiFi, le laissant ainsi à la disposition de pirates, risque de se heurter à un mur.
C’est l’impression qui se dégage à la lecture de ce livre blanc (pdf, 2.2Mo), écrit par Bluetouff, un hacker pour qui le WiFi n’a pas de secrets.
A travers la lecture de ce document – réservé à un public averti – on apprend qu’à de rares exceptions près, le matériel fourni par les fournisseurs d’accès à internet est difficile, voir impossible, à sécuriser.
Sur les 18 millions de foyers Français disposant d’un tel équipement (les fameuses ‘box’), un grand nombre se sont vu livrer un équipement qui fonctionnait parfaitement sans avoir besoin d’y mettre un mot de passe. C’est ‘plug and play’, certes, mais totalement insécure, et, depuis peu, passible de sanctions.
La première question qui se pose est donc de savoir qui va être en mesure de former les 90% de ces internautes qui n’ont pas la moindre idée de la façon de procéder pour mettre en place le cryptage de leur installation WiFi.
A priori, le FAI, ce qui devrait les mettre dans l’obligation de surdimensionner leurs centres d’appel très rapidement, et de former les personnels qui y travaillent à une pédagogie extrême, le paramétrage requis pour sécuriser une ligne WiFi n’étant pas à la porté de Mme Michu, qui a déjà eu bien du mal à comprendre ce qu’est une url. Le coût devrait être conséquent.
One more thing
Une fois son réseau WiFi crypté, les plus naïfs pourraient se croire à l’abri. Comme le démontre le rapport, il n’en est rien. Les deux modes de cryptages les plus répandus sur les ‘box’ fournies par les FAI Français sont tout deux relativement faciles à pirater. De nombreux logiciels s’offrent à vous pour le faire. Aucun diplôme d’ingénieur n’est requis, c’est à la portée d’un gamin de 14 ans astucieux. Moralité : méfiez vous de Kevin, votre voisin de palier, car votre réseau WiFi est accessible bien au delà de votre appartement.
Certaines box, elles, ne sont tout simplement pas sécurisables. Matériel ancien ou buggé, choisi par les FAI pour des raisons d’économie, à l’époque où le risque ne justifiait pas un quelconque surcoût ; pour ceux là, il faudra tout simplement rappeler le matériel et l’échanger. Un coût qui, là encore, risque fort d’être prohibitif pour beaucoup d’opérateurs de réseaux internet.
Mais une chose est clairement établie par ce dossier, à l’exception notable de la dernière génération des FreeBox, aucune installation domestique en France n’est réellement sécurisable, et la plupart peuvent être piratées en quelques minutes.
Au final, pour 99% des utilisateurs, sécuriser un réseau WiFi est de l’ordre de la mission impossible (les autres s’en sortiront très bien, merci pour eux).
Ce ‘léger’ problème technique va-t-il pour autant stopper dans son élan la loi Hadopi ? C’est peu probable.
Sens civique
Il ne reste dès lors qu’une seule solution : faire appel au sens des responsabilités des Français, ce que nous ne pouvons qu’approuver et soutenir.
A l’heure ou le filtrage/censure d’état en vient à remplacer le traditionnel filtre parental, en venant à déresponsabiliser les Français un peu plus, il est temps de lancer un appel au civisme, et au respect de son prochain. Pirater le WiFi de son voisin est étonnamment simple (si vous avez plus de 13 ans et savez bidouiller avec un ordinateur), mais ce n’est pas une raison pour télécharger illégalement, et faire courir le risque à tout votre voisinage d’une coupure d’accès internet.
Il faut cesser ces pratiques barbares qui mettent en péril la liberté d’information et la liberté d’expression de votre voisinage, il est temps de responsabiliser les Français qui ne sont pas des illettrés numériques et qui découvriront, sous peu, les joies du piratage de réseau WiFi.
Pensez aux illettrés, ne les privez pas inutilement d’internet, ne faites pas remonter leurs adresses IP aux grandes oreilles d’Hadopi : utilisez un VPN.
Merci pour eux.
-
[petit update: Ravana n’est pas du tout d’accord]
Grand show informatique, le CES de Las Vegas a vu naître le magnétoscope et lecteur de CD. L'édition 2009 ne déçoit pas. Intel en profite pour montrer sa nouvelle gamme de processeurs Core i3, i5 et i7, gravés à 32 nanomètres. Les 17 modèles présentés (11 pour portables et 6 pour PC de bureau) sont tous bâtis autour de l'arc...

Pi (ou π), vous connaissez ? Mais si, le fameux 3,1415926535897 qui n’en fini plus… Le record du monde de calcul après la virgule avait été battu l’année dernière (août 2009) par un super ordinateur de l’université de Tsukuba au Japon qui en 29 heures a trouvé 2 576 980 370 000 chiffres après la virgule.
Et bien record explosé cette année (2010) par Fabrice Bellard qui a imaginé un nouvel algorithme de calcul et qui a trouvé plus de 2,7 billions de chiffres après la virgules, soit 123 milliards de plus que le record précédent. Mais l’exploit ici, c’est qu’il n’a pas utilisé de super ordinateur… Non non, il a utilisé un bon petit PC équipé d’un Core i7 à 2,93 Ghz, 6 Gb de RAM et 7,5 TB de disque dur avec Fedora dessus… ça lui a pris exactement 131 jours pour calculer tout ça.
Exploit !!!
C’est donc avec un ordinateur 2 000 fois moins puissant et un bon algo que le nouveau nombre Pi a été découvert, soit 2 699 999 990 000 de chiffres ! Pour info, si vous lisiez ce nombre chiffre par chiffre, il faudrait 49 000 ans pour arriver au bout de votre lecture !





