Sam & Max » web http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Qu’est-ce que les websockets et à quoi ça sert ? 8 http://sametmax.com/quest-ce-que-les-websockets-et-a-quoi-ca-sert/ http://sametmax.com/quest-ce-que-les-websockets-et-a-quoi-ca-sert/#comments Tue, 30 Dec 2014 04:51:57 +0000 http://sametmax.com/?p=15615 Le protocole WebSocket vise à développer un canal de communication full-duplex sur un socket TCP. LOL. C'est clair non ? Vous inquiétez pas, tonton Sam est là.]]>

Le protocole WebSocket vise à développer un canal de communication full-duplex sur un socket TCP.

LOL. C’est clair non ?

Vous inquiétez pas, tonton Sam est là.

Le Web a évolué. On est passé de Gopher a HTTP 1 puis 1.1. Et on a eu AJAX pour rafraîchir la page sans tout recharger.

Et maintenant on a des apps complètes qui font des centaines de requêtes au serveur alors même que l’utilisateur ne change pas de page. D’ailleurs, je parie que plein de gens ne savent même plus ce qu’est une page…

Le problème c’est qu’AJAX, c’est toujours HTTP, et HTTP est sans état (stateless) : il ne garde aucune information en mémoire d’une requête à l’autre. Ça a des avantages, mais cela implique qu’à chaque requête, il faut ouvrir une connexion et la refermer. Ce qui bouffe quelques ms à chaque fois, et d’autant plus si on utilise SSL.

Une autre limite, c’est que le serveur ne peut pas envoyer de données au client (ici le navigateur) si le client ne fait pas une requête au préalable. Du coup, pour savoir si il y a quelque chose de nouveau, le navigateur doit régulièrement faire des requêtes au serveur ou utiliser des gros hacks comme le long polling.

Les websockets (c’est un abus de langage, on devrait parler du protocole Websocket) ont été créés pour répondre à ces besoins : elles permettent d’ouvrir une connexion permanente entre le navigateur et le serveur. Ainsi, chaque requête est plus rapide, et plus légère. En prime, le serveur peut envoyer des requêtes au navigateur pour le prévenir qu’il y a du nouveau.

Ceci permet de faire tout ce que permettait de faire AJAX mais en plus rapide, et en plus léger. Et également d’envoyer des notifications (ce contenu a changé, un message est arrivé, l’autre joueur a fait cette action…) au navigateur au moment où l’événement se produit.

En gros, de faire des apps Web quasi temps réel.

Il existe d’autre technos pour faire cela : applets Java, flash, comet, server sent events…

Mais aucune n’ont décollé. Websocket est donc aujourd’hui la solution de facto.

Caractéristiques

Le protocole Websocket utilise l’abréviation ws et wss si SSL, les URLs vers des endpoints websocket ressemblent donc à : ws://domaine.tld/chemin/vers/truc/.

Intelligemment, il utilise un handshake compatible avec celui de HTTP, permettant à un serveur de gérer les deux sur les mêmes ports. Donc on peut faire du Websocket sur le port 80 et 443. Néanmoins, certains proxy se gourent quand ils voient du websocket non chiffré et gauffrent votre connexion en la traitant comme du HTTP. Donc si vous voulez une app solide, investissez dans un certif SSL.

Tout ça fonctionne à partir de IE10. Notez comme IE est devenu le standard de ce qui ce fait de moins bien à tel point que je n’ai même pas besoin de vous parler des autres, vous savez que ça marche. Il existe en plus des plugins flash pour simuler des websockets sur les navigateurs anciens, c’est à dire les encore plus vieux IE.

Par défaut, les websockets permettent de faire de requêtes crossdomain, contrairement à AJAX. Avec les nouvelles apps qui utilisent NodeJS en local (comme popcorntime) on peut imaginer une nouvelle type d’attaque : une page web qui se connecte à un serveur websocket local de votre machine. Comme les websockets sont souvent utilisées pour du RPC, il y a du potentiel.

Bon, ta gueule, et montre le code

Vous noterez que ce qui prend du temps dans l’exemple c’est la connexion, qu’on ne fait qu’une fois. Ensuite l’échange de données est super rapide.

Ceci est un exemple Javascript, mais un client websocket n’est pas forcément un navigateur. En fait, c’est très précisément le cas avec WAMP, dont les clients peuvent être des programmes Python, Objective C, Java, C++, etc. L’avantage de WAMP, c’est qu’il automatise toute la machinerie pour découper la logique de son programme en divers fonctions et services, plutôt que d’avoir à tout faire à la main avec send() et onmessage().

Dans tous les cas, il vous faudra un serveur qui supporte les Websockets pour l’utiliser. En Python, c’est Tornado ou Twisted (sur lequel est basé le serveur WAMP crossbar). En Javascript, c’est NodeJS. Quoi qu’il en soit, il vous faut un logiciel qui gère l’IO de manière non bloquante, car il y a de nombreuses connexions ouvertes en simultanées, si on veut que ça soit performant.

]]>
http://sametmax.com/quest-ce-que-les-websockets-et-a-quoi-ca-sert/feed/ 8
Le Web n’est plus HTTP + HTML 15 http://sametmax.com/le-web-nest-plus-http/ http://sametmax.com/le-web-nest-plus-http/#comments Fri, 23 May 2014 05:24:53 +0000 http://sametmax.com/?p=10304 Si vous voulez énerver un blogger technophile, utilisez le mot Web là où vous devriez utiliser le mot Internet et inversement.

Internet, c’est beaucoup plus que le Web. C’est SSH, IMAP, TELNET, DNS, POP, SMTP, FTP, RTSP, NNTP, Bittorent, TOR, Freenet, Bitcoin, et quelques centaines d’autres protocoles qui se parlent.

Jusqu’ici, le Web, c’était juste HTTP. Des ressources Web, sur lesquelles on agissait via une requête textuelle verbalisée (GET, POST, PUT, OPTION, HEAD, etc) et qui retournait une réponse, généralement en forme de HTML.

Ça a un peu évolué, on a eu SSL qui s’est rajouté, et donc HTTPS, et AJAX, qui n’a pas changé le protocole, mais rendu la nature des requêtes un peu différente. Rien qui n’empêche de debugger avec CURL.

Mais c’est bientôt fini tout ça.

Aujourd’hui les nouveaux protocoles utilisés dans le cadre du Web sont en passe de prendre le pouvoir. Bien sûr il y a SPDY et QUIC, mais surtout, il a les protocoles basés sur les websockets type WAMP.ws, mais également les nouvelles capacités P2P promises par WebRTC. Et des apps qui utilisent massivement les données hors ligne, le scripting JS pour des features essentielles, de la video, du son…

Et donc adios, l’époque où vous pouviez juste dégainer requests et parler à un site. Bye bye le state less, le human readable, le cycle requête / réponse.

Le nombre de technologies qu’on doit empiler aujourd’hui pour déployer un site devient énorme : un moteur de recherche, un message broker, un gestionnaire de fil d’attente, un gestionnaire de déploiement, des technos d’isolation…

C’est fini la simplicité. C’est fini la transparence. L’ère du hacker amateur qui pouvait s’occuper d’un peu de tout, touche doucement à sa fin.

Au revoir et merci. Je me suis super amusé.

Et désolé pour les mômes qui arrivent maintenant, vous allez en chier. Mais vous avez aussi plus de possibilités qu’il n’y en a jamais eu. Plus qu’un homme ne peut concevoir. Plus que tous les hommes en fait.

Et RIP HTTP. Ou pas, puisqu’on passe notre temps à faire des APIs REST maintenant, mais aussi car on est en train de récréer un peu tout au dessus d’HTTP. Long live HTTP, alors, le nouveau TCP/IP. Sauf quand on fait du real time. Ou du P2P. Changement de status : “c’est compliqué entre moi et mon navigateur”.

Internet, phagocyté par le Web, sur lequel on reconstruit Internet et même le desktop ?

Je ne crois pas qu’il existe un seul métier qui ait autant changé en 10 ans. J’espère qu’on en laisse pas trop derrière en courant comme des fous en riant les yeux mi-clos. Pourvu qu’il y ait pas trop d’arbres en face. Pourvu qu’on aille pas dans la direction de la falaise.

En tout cas, c’est toujours fun. Je crois que je vais descendre la prochaine pente en roulant sur le côté. Et avoir la tête qui tourne. Vomir. Et dire que c’est la faute de Javascript.

Et recommencer.

]]>
http://sametmax.com/le-web-nest-plus-http/feed/ 15
Astuces de recherche 16 http://sametmax.com/astuces-de-recherche/ http://sametmax.com/astuces-de-recherche/#comments Wed, 27 Nov 2013 08:46:13 +0000 http://sametmax.com/?p=8115 Quand vous voulez traduire un mot compliqué d’une langue à l’autre, les outils de traduction en ligne marchent pas super bien. Une bonne solution ? Chercher le terme sur wikipedia, puis demander l’article dans une autre langue. Non seulement on a la traduction voulue dans le titre de l’article, mais en plus tout le champ lexical lié dans le corps de l’article.

Tips : la commande bang pour ddg est !wfr pour la version française de wikipédia.

Quand vous cherchez un nouveau mot à la noix comme “lulz”, un truc cochon style “bukakke” ou une abréviation obscure du genre “GTFO”, vous n’allez pas la trouver dans le dico ou sur wikipedia. La meilleure source pour ce genre de terme : urbandictionry.com. En plus, c’est drôle.

Tips : la commande bang pour ddg est !ud

Vous voulez regarder un film ou une série en VO streaming mais elle n’est pas sortie en France ? Ou alors votre connexion bride ces fournisseurs ? Ou vous avez peur de vous faire choper ?

Allez sur les sites de streaming en espangol ! Ils listent les mêmes séries, le plus souvent en VO sous-titré ES, sur des hébergeurs différents complètement hors radar de nos tristes sires français. Et en plus, il n’y a pas de limite de temps ou de débit. Exemple : seriesyonkis et peli24.

Tips : évitez les séries doublées en espagnol comme la peste. C’est HORRIBLE. Dans stargate O’Neil a la voix de Teal’c et inversement…

Vous allez sur des sites de rencontre et vous voulez évitez les faux profiles ? Clic-droit sur la photo et enregistrez l’image sur votre bureau. Allez sur Google Image, et dans le champ, cliquez sur l’appareil photo pour uploader l’image.

Vous allez très vite voir si l’image a été réutilisée.

]]>
http://sametmax.com/astuces-de-recherche/feed/ 16
Évitez A TOUT PRIX le site airbnb 43 http://sametmax.com/evitez-a-tout-prix-le-site-airbnb/ http://sametmax.com/evitez-a-tout-prix-le-site-airbnb/#comments Sun, 27 Oct 2013 07:11:47 +0000 http://sametmax.com/?p=7549 On m’avait dit beaucoup de bien de ce site, qui permet de trouver des logements pas chers chez l’habitant dans tous les pays du monde.

Effectivement, c’est bien foutu, c’est propre et lisible, et il y a du choix. Alors, partant quelques jours avec une copine en voyage, je me suis dis que ça se tentait.

A l’inscription, à la réservation, un long form à remplir, avec la carte à rentrer, la caution de 70 euros dans les dents, les frais que prend airbnb qui se rajoutent en dernière minute à la facture, etc. Bon, c’est du classique, pas de quoi en faire un fromage.

Là où ça se corse, c’est qu’APRES tout ce merdier habituel, je reçois une notification me signalant que ma réservation n’était pas envoyée.

WHAT ?

Et non ! Il faut maintenant passer par un stade de “vérification”, pour votre sécurité, messieurs-dames.

A chaque fois que je lis “pour votre sécurité” (sur les panneaux signalant les caméras, les radars, sur les formulaires, sur les contrats, etc), j’ai des envies de meurtre. Je voudrais trouver le mec qui a écrit ces lignes et lui faire bouffer sa connerie pour voir si elle a un goût de sécurité.

D’abord, uploader un document d’identité.

Arg.

Bon, admettons, le mec va t’accueillir chez lui, tout ça, ils veulent rassurer le chaland. Ça fait grincer les dents du voyageur que je suis ce lissage des pratiques, mais je me soumet à l’exercice. C’est comme ça qu’on appâte le main stream et qu’on a plus de choix, moins cher.

Next page, demande de photo de profile obligatoire, publique.

Mais fuck !

J’ai pas envie que mon nom, mon prénom (qu’ils m’ont demandé, et affichent sans me prévenir dans mon profile) et ma photo soient sur le net, bordel.

Je mets un avatar de merde en espérant que les modos le voient pas.

Mais attention, il y a encore deux étapes !!!

Étape 3, pour des raisons de sécurité de mes couilles, il faut lier un compte en ligne. Mais tu te fous de ma gueule ???

Je lies un compte de test qui me sert à rien, un compte gmail de spam. Ils demandent évidement la permission de gérer mes contacts, parce que bien sûr, c’est indispensable… Toujours effectuer une sodomie après un prélèvement sanguin. C’est pour votre sécurité.

Et pour finir, faire une vidéo de 10 secondes avec ma cam, me présentant.

VAS TE FAIRE FOUTRE !

(en plus leur applet flash ne marche sous aucun nav sous Linux)

La seule bonne nouvelle, c’est que la fonction “supprimer le compte” est facile à trouver.

]]>
http://sametmax.com/evitez-a-tout-prix-le-site-airbnb/feed/ 43
Sam et Max en quelques chiffres 30 http://sametmax.com/sam-et-max-en-quelques-chiffres/ http://sametmax.com/sam-et-max-en-quelques-chiffres/#comments Wed, 17 Jul 2013 05:51:46 +0000 http://sametmax.com/?p=6673 haaaaa les stats, j’adore ça moi, c’est étroitement lié au métier de webmaster ceci dit. Un jour sans regarder les stats c’est comme un jour sans pignole.

Voici Sametmax.com en quelques chiffres pour les curieux:

Date de création: 4 février 2012
Articles: 505
Tags: 748
Commentaires: 6472
Premier inscrit: roro
Premier commentateur: roro le 2012/04/23 at 01:27
Tampons: 208
Spams: 33,249
Visites par mois: 100,862
Vistes depuis la création du blog: 837,446
Moteurs de recherche (par mois): 38,312
Mots clefs: masturbation feminine, fkk, freeplug, sex japon, abreviation escort, git stash, sublime text 2, ubuntu 12.10, node.js …

Les posts les plus vus:

Home page / Archives More stats 201,116
Masturbation féminine – Un peu de théorie en vidéo More stats 95,796
Synchroniser les freeplugs (les adaptateurs réseaux CPL de free) More stats 33,993
Une journée dans un FKK (maison close Allemande) More stats 32,124
Les Japonais et le sexe – des gros malades… Ou pas… More stats 20,968
10 astuces pour Sublime Text 2 More stats 14,013
Les abréviations de la prostitution et des Escorts, vous connaissez ? More stats 13,430
Il ne faut pas prendre des gens pour des cons mais ne jamais oublier qu’ils en sont More stats 12,302

 

Le pognon que ça nous rapporte:

Non contents d’avoir asséché le trafic des autres blogs du net grâce à nos articles sulfureux écrits d’une plume féérique nous avons également pulvérisé tous les records précédents en terme de monétisation.

Depuis que Sam a mis Flattr sur S&M on a récolté 45€. Ce qui paie le serveur (environ 5€/mois en VPS chez leaseweb).

Si vous voulez d’autres chiffres demandez-nous et nous les rajouterons.

Allez voir le premier post par nostalgie ;)

]]>
http://sametmax.com/sam-et-max-en-quelques-chiffres/feed/ 30