porky is a #JavaScript extension for Adobe® #InDesign
▻http://porky.io Indesign import #json #sql #spip
porky is a #JavaScript extension for Adobe® #InDesign
▻http://porky.io Indesign import #json #sql #spip
csvkit 1.0.1 — csvkit 1.0.1 documentation
▻http://csvkit.readthedocs.io/en/1.0.1/index.html
csvkit is a suite of command-line tools for converting to and working with CSV, the king of tabular file formats.
Ah oui super.
Je viens de découvrir un truc dingue. Excel suppose que puisqu’on est en France, le séparateur de champs d’un fichier csv
est non pas ,
mais ;
...
Du coup si quelqu’un nous envoie un véritable fichier csv
et bien il ne s’ouvre pas dans Excel FR.
A moins de faire :
csvformat -D \; "$source" > "$source.tmp"
mv "$source.tmp" "$source"
De même pour convertir un fichier excel en fichier « csv » à la mode excel FR :
source="$1"
dest="${1/xlsx/csv}"
in2csv "$source" > "$dest.tmp"
csvformat -D \; "$dest.tmp" > "$dest"
rm "$dest.tmp"
LibreOffice à la bonne intention de te demander quel est le séparateur utilisé dans les csv lors de leur ouverture ;)
@booz, pour ouvrir un fichier .csv avec Excel, il faut préalablement le renommer en .txt ce qui te donne la main sur le choix du séparateur (et des jeux de caractères).
Tu peux aussi (et ça marche aussi pour l’enregistrement d’Excel vers le csv) dire à ton ordi qu’il n’est pas en France (paramètres régionaux sous Windows ou préférences sous MacOS).
Héhé, et pour gérer les accents sous Mac dans un viel excel, faut en plus faire :
| iconv -f UTF-8 -t macintosh
Donc pour convertir un csv
propre en Excel FR à l’ancienne et que ça s’ouvre en cliquant dessus sans rien faire d’autre :
csvformat -D \; "$source" | iconv -f UTF-8 -t macintosh > "$dest"
Et bonus, une version en spip/php pour générer un fichier à télécharger qui sera ouvert dans Excel avec les bons accents que @fil m’avait fait il y a quelques années.
Dans mon_squelette_fonctions.php
:
<?php
include_spip('inc/charsets');
init_mb_string();
ob_start('convert_utf16');
function convert_utf16($txt) {
return "\xFF\xFE" . mb_convert_encoding("\n".$txt, 'UTF-16LE', 'UTF-8');
}
Dans mon_squelette.xls.html
:
#HTTP_HEADER{Content-Type: application/vnd.ms-excel; charset=UTF-16LE}
...
En fait Excel n’est pas si mauvais que ca. J’ai compris que le coup du séparateur ;
avait sont intérêt en fr
car la ,
est utilisée pour les nombres décimaux en francais (c’est un .
en anglais). Donc pour parser un fichier csv c’est plus simple avec des données fr
si le séparateur est ;
pour ne pas confondre un champs et un nombre décimal.
Par ailleurs j’ai testé csvkit
vs Excel
vs Googlesheets
vs awk
avec un fichier csv de 11Mo, et bien C’est Excel
qui s’en sort le mieux.
csvkit
et Googlesheets
ramment tant qu’ils peuvent, awk
s’en sort bien mais ne sait pas parser simplement sur les ,
en distinguant les ,
séparateurs de champs des ,
décimales.
Excel gère...
Je me demande du coup si le bon format pour des gros fichiers ne serait pas des données séparées par des tabulations.
Je persiste à penser – mais en ce domaine comme dans d’autres, le plus court chemin est celui que l’on connaît – que le moyen le plus simple d’ouvrir un .csv avec Excel est de le mettre en .txt. Tu passes ainsi par l’assistant d’importation de texte qui est court-circuité pour les .csv. Ses 3 étapes te permettent de choisir interactivement (tu visualises le résultat directement)
• le codage du texte et la ligne de début de l’importation
• le ou les séparateur(s) (ou le découpage en colonnes si tu es en largeur fixe)
• et (surtout !) le type de données pour chaque colonne (indispensable pour gérer les différents formats de date), voire de ne pas importer les colonnes qui ne t’intéressent pas (très utile pour les gros fichiers de données : quand tu supprimes les colonnes d’un tableau Excel, l’espace mémoire n’est libéré que lors de l’enregistrement du fichier, les colonnes que tu as importées puis immédiatement supprimées occupent toujours la mémoire).
Tilt Hover Effects | Demo 2 | Codrops
▻http://tympanus.net/Development/TiltHoverEffects/index2.html
Sisimai | The successor to bounceHammer, Library to parse bounce mails | Sisimai : Mail Analyzing Interface
Sisimai is the successor of bounceHammer, is a Mail Analyzing Interface: a Perl module and a Ruby Gem for parsing RFC5322 #bounce #emails and for generating structured data such as #JSON.
Pourrait être utile pour la gestion des bounces sur #seenthis ? ping @biggrizzly
Kaesong entre deux Corées
▻http://www.laviedesidees.fr/Kaesong-entre-deux-Corees.html
En février 2016, la Corée du Sud décide de fermer le complexe industriel intercoréen de Kaesong pour protester contre les essais nucléaires et balistiques nord-coréens. Elle n’avait pas fait auparavant de la dénucléarisation un préalable à la collaboration des deux Corées – un changement de cap qui pourrait se révéler peu judicieux.
Essais & débats
CoverageJSON - CoverageJSON is a geospatial #coverage interchange format based on JavaScript Object Notation (#JSON).
A format for publishing #geotemporal data to the web.
Un plugin #leaflet est déjà dispo : ▻https://github.com/Reading-eScience-Centre/leaflet-coverage
#map
Artoolkit The world’s most widely used tracking library for augmented reality. All the tools needed to create innovative AR applications, released under LGPL 3.0.
▻http://artoolkit.org
#JSARToolKit #Three.js #OpenCV #Artoolkit
plugins/collection_json/trunk. – SPIP-ZONE
▻http://zone.spip.org/trac/spip-zone/browser/_plugins_/collection_json/trunk/paquet.xml?rev=78694
Un début de #plugin #SPIP implémentant le format « collection+json » en REST
(voir aussi ▻http://zone.spip.org/trac/spip-zone/browser/_plugins_/collection_json/trunk/http/collectionjson.php?rev=78694)
+ ►http://contrib.spip.net/Serveur-HTTP-abstrait : plugin-outil pour aider les développeurs à implémenter des #API orientées #REST, basées sur les #méthodes_HTTP (get, post, put, delete)
+ ▻https://github.com/collection-json/spec : #documentation du format #collection+json
#json
@kent1 le serveur http abstrait a bien été cité dans ▻https://blog.spip.net/Noel-au-balcon-SPIP-aux-tisons.html par contre, pour le plugin collection json, je n’ai aucune doc à lier...
Je cherche une lib #JS orientée #canvas #gaming ... des idées ?
createjs me semble déjà bien ▻http://www.createjs.com
Lost in #Javascript ...
▻https://www.npmjs.com
▻http://bower.io
▻http://browserify.org
▻http://gruntjs.com
▻https://nodejs.org/en
▻http://jshint.com
▻http://gulpjs.com
ça fait beaucoup de trucs à découvrir...
@0gust1, @robin, @archiloque, vous n’auriez pas un tuto, un guide, pour aider un débutant à entrer dans ce monde merveilleux ?
@james perso j’ai bien aimé ►https://medium.com/javascript-and-opinions/state-of-the-art-javascript-in-2016-ab67fc68eb0b c’est partial mais ça te donne des idées
– npm « va de paire » avec node
– amha tu peux oublier bower maintenant
– perso je suis passé de jshint à eslint :
▻https://github.com/shramov/leaflet-plugins/commit/526bee1f670dbceb5480e212c8c536a5cfb253ad
voici la conf minimale que j’utilise :
▻https://github.com/shramov/leaflet-plugins/blob/master/.eslintrc
▻http://eslint.org donc.
et du coup, me rappelant de l’excellent ►http://www.phptherightway.com, je tombe sur ▻http://jstherightway.org
un peu de lecture en perspective :-)
Je n’ai pas de guide (ça fait trop longtemps...) mais ceci dit j’ai remarqué que dans JavaScript Weekly (▻http://javascriptweekly.com) et Node Weekly (▻http://nodeweekly.com) il y avait souvent des liens vers des tutoriels de qualité.
Dans ta liste, je te conseillerais d’oublier bower (je n’utilise que npm, que ce soit pour du client ou du serveur), grunt et gulp (je fais tout mes build scripts aussi dans npm, avec de l’Unix et du JS ; quelques exemples simples : ▻https://github.com/scienceai/crossref/blob/master/package.json#L6), et JSHInt qui comme d’autres l’ont dit est dépassé par ESLint.
J’utilise ▻https://github.com/scienceai/eslint-config-scienceai comme config, mais c’est un compromis, à toi de voir s’il correspond.
De façon générale, JS c’est comme Unix : il y a plein de petits outils, mais il ne faut surtout pas partir sur l’impression que tu as besoin de tout connaître pour bien t’en servir. Il faut juste trouver ce dont tu as besoin pour commencer, puis progressivement améliorer les choses en rajoutant telle ou telle brique à ta boîte à outils (enfin tu vois quoi).
Si c’est pour faire du client, je te conseille de regarder rapidement du coté de la transpilation browserify+babel+uglify+watchify parce que c’est un peu touffu et abscons la première fois mais par contre une fois que ça roule ça devient difficile de revenir à une longue liste d’éléments script et à ES5.
Et pose des questions !
Bisous aussi @suske
Merci à tous ! Vraiment :-)
Et oui je risque fort de revenir avec des questions ;)
Coté task-runners grunt est clairement en perte de vitesse. Npm scripts est une solution très élégante (plus légère et moins de dépendances), par contre pas toujours simple à mettre en place sur des gros projets. Dans ce cas, j’utilise Gulp (mais toujours en combinaison avec npm-scripts). Pour ajouter un lien aux excellents postés par les autres : ▻http://naholyr.fr/2015/11/ecrire-des-scripts-npm-multi-plateforme
Il y a aussi webpack, d’ailleurs qui est un « builder/packer » (plutôt qu’un task-runner utilisé pour faire du build... à la différence de Gulp/Grunt), capable de gérer aussi les CSS, les images, etc...
Coté « packers », je privilégie browserify et l’écosystème autour, mais il faut avouer que webpack a certains avantages (et dès que l’on fait du #React sur des projets moyens à gros, on le rencontre souvent).
Coté « data-binding », #React est plus que populaire... mais n’est pas toujours le plus simple ou le plus élégant (franchement il y a tout et n’importe quoi dans son écosystème). Pour des projets petits à moyen, j’aime beaucoup VueJS que je trouve largement sous-estimé (le technical-marketing-driven development de la communauté JS est... fatiguant :-S)
Enfin, si tu veux être un « hipster » (et avoir peut être un cran d’avance), regarde du coté de :
– Elm (un dialecte de Haskell compilant vers du JS) – surprenant de simplicité et très intéressant, bien plus propre et simple que du React+Redux (il a servi d’inspiration aux auteurs de Redux)
– Cycle.js, pour faire du « Functionnal Reactive Programming » (pas encore suffisament testé, mais les concepts sont intéressants).
►http://elm-lang.org (la version 0.17 vient juste de sortir et est encore plus simple)
▻http://cycle.js.org
Si je puis exprimer quelques légères différences d’opinion avec @0gust1... :)
Personnellement, je bosse au quotidien sur un gros projet JS et je n’ai pas rencontré de situation où les npm scripts n’étaient pas suffisants. Il est vrai qu’on n’a pas de collaborateur sous Windows, du coup la portabilité est plus simple. YMMV !
Pour WebPack, je m’en méfie comme de la peste. J’ai tenté le coup il y a six mois pour un nouveau projet, et au départ ça avait l’air génial, presque magique. Et puis j’ai voulu configurer un truc pas tout à fait comme tout le monde... catastrophe. Au moins browserify ça ne fait qu’un truc mais ça le fait bien, et quand tu veux autre chose il suffit d’aller voir ailleurs :)
C’est vrai que la qualité de l’écosystème React est inégale, mais il y a quand même des choses très bonnes (comme react-motion, ou les linters de JSX). Personnellement je ne suis pas fan de Redux, je pense qu’il y a une place à prendre. À l’usage React même c’est quand même top.
J’espère que les gars de Cycle vont nous sortir quelque chose de bien ; ils semblent avoir bien compris les problèmes de RxJS (IMHO inutilisable même si le concept est top) avec xstream. À suivre, mais bon c’est très, très hipster pour commencer :)
Je lis cela comme de la prose ésotérique. Presque je pourrais entrer en transe si j’allumais des bougies.
:D
Haha, ouais, c’est un peu ça. #vieux_con
J’ai la même impression que pour la cartoon. Avant tu voulais coder, tu codais. Maintenant faut investir beaucoup de temps pour comprendre l’environnement avant de comprendre comment coder.
(et puis jquery, c’est super récent hé :p ) #dhtml
@robin pas vraiment de désaccord :) c’est vrai que ces dernières années j’ai bossé dans des environnements assez hétérogènes (l’outillage devait marcher sous Win, OSX et Linux).
Pour webpack, j’ai eu exactement les mêmes sentiments...
Sinon, je m’aperçois que j’ai oublié de mettre le lien vers #vueJS : ►http://vuejs.org Pour des projets pas énormes, je trouve ça beaucoup plus rapide/efficace que React.
Désolé pour les liens de « hipster » (c’est vrai que je ne commencerais pas par là ;-) ). Je trouve Elm néanmoins très intéressant, j’ai été très surpris en essayant. Il n’est pas encore assez intégré avec les APIs des navigateurs à mon goût : poster un form « à l’ancienne » n’est pas vraiment simple, utiliser le localStorage non plus (les trucs que j’ai constaté).
Sinon, pour @rastapopoulos , @nicolasm , je ressens ça assez fort. On a beaucoup parlé de #javascript_fatigue ces derniers temps. De mon coté, j’ai eu de sacrées prises de bec avec de jeunes devs zélotes des derniers trucs à la mode, aux avis dichotomiques, ne sachant pas faire la part des choses entre le marketing des équipes techniques des GAFAM et la réalité du code, des besoins. On peut encore écrire de très bonnes choses avec jQuery si l’on organise son code avec soin. Je suis devenu un vieux con aussi, je crois.
Il y a des niveaux dans le #vieux_con :)
Perso je ne songe même plus à la #js_fatigue, juste je passe mes journées un peu à coté du torrent de trucs qui sortent, je sirote ma bière, et de temps en temps quand il y a un bon outil qui passe je l’attrape. Il fait frais, la vue est belle.
▻http://hjson.org : “Let’s make quotes for strings optional as well” - this will end in tears. #HJSON #JSON
Wildlife haven in the Korean DMZ under threat | Environment | The Guardian
▻http://www.theguardian.com/environment/2012/sep/06/wildlife-haven-korean-dmz-threat
Attention archive, article de 2012
A distant waterbird flaps lazily along a strip of verdant marshy shoreline, the brown river drifting sluggishly alongside, while a young soldier stands looking on bored with his rifle. There are no sounds but the water lapping and a soft drone of insects – only the barbed-wire fence and the military presence give a clue that this tranquil scene is the centre of one the world’s most dangerous nuclear stand-offs.
The no man’s land between North and South Korea, surrounded on all sides by heavily armed watchtowers, has been in place since the Korean war ended in 1953. A narrow strip of land along the line that divides the country in two has been deliberately depopulated, to create a buffer zone between the two states.
#corée_du_nord #dmz #jsa #frontières #murs
Pour l’API de SeenThis ? :-)
RFC 7807 : Problem Details for HTTP APIs
Lorsqu’on fait une requête #HTTP, on récupère un code à trois chiffres qui indique notamment si tout s’est bien passé (si le code commence par 2, c’est bon, s’il commence par 4 ou 5, c’est qu’il y a un problème). Ces codes ne sont pas toujours assez fins et bien des #API de services #REST (donc reposant sur HTTP) voudraient des précisions. Plutôt que de créer un nouveau code, ce #RFC propose un mécanisme qui permet d’envoyer du #JSON normalisé indiquant tous les détails sur le problème survenu.
Literally #canvas — Literally Canvas v0.4.11 docs - HTML5 drawing board - MS Paint in your web browser
▻http://literallycanvas.com/index.html
Literally Canvas is an extensible, open source (BSD-licensed), HTML5 drawing widget. Its only dependency is React.js. You can use it to embed drawing boards in web pages. It’s kind of like an extensible MS Paint in JavaScript. Users can sketch drawings and you can do what you like with the results. It comes with an easy-to-use #jQuery plugin.
adleroliveira/dreamjs · GitHub
▻https://github.com/adleroliveira/dreamjs
A lightweight #json #data generator. This library can output random data from a Json Schema using standard types like String, Number, Date, Boolean, Array, or with the 60+ built-in custom types like Name, Age, Address, Word, Sentence, paragraph, gender, (RGB) color etc.
smartcrop.js testsuite
▻http://29a.ch/sandbox/2014/smartcrop/examples/testsuite.html
smartcrop.js is a content aware image cropping library. On this page you can see how it operates on a large set of (>100) images. This page is designed to show you both the strengths and weaknesses of this open source library.
#js #images #web_design
Matrix.org | A new basis for open, distributed, real-time communication
►http://matrix.org
#Matrix is an open standard for decentralised communication, providing simple HTTP APIs and open source reference implementations for securely distributing and persisting JSON over an open federation of servers.
You can use Matrix for…
Decentralised Group Chat
Fully distributed persistent chatrooms with no single points of control or failure
WebRTC Signalling
Web-friendly signalling transport for interoperable VoIP and video calling
Internet of Things
Exchanging and persisting data between devices and services
…and anywhere else you need a common data fabric to link together fragmented silos of communication.
si vous voulez m’y causer je suis @fil:matrix.org
#cccp
et une interview (qui date d’un an) de Matthew Hodgson sur le projet
►https://bloggeek.me/matrix-webrtc-interview
et des nouvelles plus récentes :
▻http://matrix.org/blog/2015/09/07/matrix-one-year-in
Il faut prendre un navigateur compatible avec WebRTC (Firefox ou Chrome, mais à priori pas Safari), se rendre sur ►https://vector.im/beta ; en bas, demander la création d’un compte.
On reçoit alors un email de confirmation ; on valide, puis on se connecte à nouveau sur ►https://vector.im/beta
Ensuite il devient possible d’ajouter quelqu’un à une conversation en saisissant son adresse, dans mon cas @fil:matrix.org
@b_b:matrix.org arrive à rejoindre un chan irc, mais je ne vois pas comment contacter quelqu’un en privé...
Trouvé, c’était bien caché... il faut cliquer sur soi dans la liste des membres du chan, et là on trouve le bouton Leave :)
Dans le canal ▻https://vector.im/beta/#/room/#matrix-fr:matrix.org il y a des infos intéressantes sur le projet :
Amandine
(...) il y a aussi des entreprises qui construisent des choses à vocation plus commerciales, notamment l’équipe d’Open WebRTC chez Ericsson qui bossent pas mal avec nous
en fait l’équipe est partagée entre Rennes et Londres
avec une orientation plutot back-end à Londres et front-end à
Adev
C’est un projet à but commercial initialement ?
Amandine
à la base on travaille tous dans la meme entreprise (Amdocs) et on développe des applis mobiles type Skype etc pour les opérateurs (notre principal déploiement est blah pour TIM Brasil)
Mais on trouvait que l’industry avait besoin d’un standard ouvert et pragmatique de communication (après avoir joué plusieurs années avec XMPP et SIP) et on a réussi à convaincre le management d’Amdocs de financer Matrix.org qui est à but non-lucratif et en cours d’incorporation en tant que tel (en gros on finalise la paperasse légale)
donc Matrix.org est indépendant à but non-lucratif, parce que pour que ça marche il faut que tout le monde l’utilise, pas que Amdocs
Et illes expliquent à un moment pourquoi ils ont inventé un nouveau « standard » (qui s’ajoutent aux précédents « standards »), plutôt qu’utiliser XMPP (entre autres possibilités) ?
Mettons-le là :
- Not particularly web-friendly - you can’t easily speak XMPP from a web browser. (N.B. Nowadays you have options like XMPP-FTW and Stanza.io that help loads with letting browsers talk XMPP).
– Single logical server per MUC is a single point of control and availability. (MUCs can be distributed over multiple physical servers, but they still sit behind a single logical JID and domain. FMUC improves this with a similar approach to Matrix, but as of Oct 2015 there are no open source implementations.)
– History synchronisation is very much a second class citizen feature
– Stanzas aren’t framed or reliably delivered without extensions. (See wiki.xmpp.org for an XMPP take on this)
– Multiple device support is limited. (Apparently Carbons and MAM help with this)
– Baseline feature set is so minimal that fragmentation of features between clients and servers is common, especially as interoperability profiles for features have fallen behind (as of July 2015)
– No strong identity system (i.e. no standard E2E PKI, unless you count X.509 certs, which are questionable)
– Not particularly well designed for mobile use cases: push; bandwidth-efficient transports. (Since the time of writing a Push XEP has appeared, and wiki.xmpp.org claims that XMPP runs “fine” over a 9600bps + 30s latency link.)
We think of Matrix and XMPP as being quite different; at its core Matrix can be thought of as an eventually consistent global JSON db with an HTTP API and pubsub semantics - whilst XMPP can be thought of as a message passing protocol. You can use them both to build chat systems; you can use them both to build pubsub systems; each comes with different tradeoffs. Matrix has a deliberately extensive ‘kitchen sink’ baseline of functionality; XMPP has a deliberately minimal baseline set of functionality.
Dans cette FAQ, ils font référence plusieurs fois à une page sur le wiki de XMPP, et on a presque l’impression que cette page a été faite pour répondre aux critiques principales formulés par Matrix :
▻http://wiki.xmpp.org/web/Myths
=====
Sinon une interview d’un co-fondateur :
►https://bloggeek.me/matrix-webrtc-interview
Avec une vision à long terme…
Meanwhile, the bigger vision is to use Matrix’s cryptographically secure eventually-consistent distributed message history to provide a robust decentralized messaging layer for the internet of things.
cc @goffi aussi, pour le sujet, vu qu’il n’est pas dans les suiveureuses du thread :)
#XMPP #messagerie #historique #pubsub #HTTP #API #JSON #standard #protocole #internet_des_objets
Cette page a en effet été faite explicitement pour répondre aux critiques qui sont pratiquement toutes infondées.
Pour la petite histoire, j’ai découvert Matrix pour la première fois au Fosdem en début d’année, ils étaient voisins de notre stand. J’ai vu la conférence, c’était intéressant mais rien d’extraordinaire non plus (tout le monde a applaudi quand il y avait la vidéo alors que c’était un simple WebRTC, c’est plutôt Mozilla qu’il faut applaudir ici). Déjà dans cette conf, il se sont mis beaucoup en opposition de XMPP.
Là où ça se gâte, c’est qu’ils font ça systématiquement, des attaques à charge contre XMPP, non seulement en conf (et ils en font beaucoup, ils ont visiblement un très gros budget marketing), mais sur le net (Twitter, hackernews on peut systématiquement les voir quand il y a un article sur XMPP, même
en français comme dans un des mes journaux sur XMPP où j’ai dû répondre : ▻https://linuxfr.org/users/goffi/journaux/parlons-xmpp-episode-6-les-commandes-a-distance#comment-1615075).
La critique est OK quand elle est fondée (et avec un minimum de forme), mais la plupart de leurs arguments (si ce n’est tous) sont faux ou approximatifs, au point que la communauté XMPP a dû réagir et répondre. On a vraiment l’impression qu’ils voient XMPP comme leur principal concurrent (ce qui est probablement vrai), et qu’ils veulent l’abattre.
Bref, j’avais eu un premier contact plutôt curieux, en me disant pourquoi pas (j’ai même mentionné Matrix comme une technologie intéressante dans une de mes confs), mais depuis c’est devenu vraiment lourd et ils ont réussi à passer dans la case « je n’aime pas », ce qui est rare pour un projet libre.
Sur le plan technologique c’est donc intéressant sans être extraordinaire, mais sur l’a côté Matrix a tout fait pour se mettre la communauté XMPP à dos (et ils ont réussi).
MàJ : mauvais lien corrigé
MàJ 2 : un exemple de conversation houleuse entre Dave Cridland (très impliqué dans la communauté XMPP, développeur OpenFire, membre du « council » XSF) et Matrix : ▻https://twitter.com/DwdDave/status/630849678347739136
merci @goffi — j’aurais effectivement dû te citer dans la conversation.
Mes deux sous : ce qui me semble faire l’attrait de Matrix aujourd’hui c’est peut-être plus l’interface que l’aspect techno. C’est facile de s’inscrire, le client Web est assez agréable à utiliser, et il ouvre sans complications l’accès à tout ce qu’il faut (échange de fichiers, upload d’images, vidéo et son, et passerelle irc qui permet de ne pas être « tout seul » au début).
C’est effectivement ce qu’il manque à XMPP des client intuitifs qui gèrent tout, et c’est une grosse partie du travail de Movim, Jappix, BuddyCloud et SàT.
Le truc aussi est que nous travaillons avec les standards, et c’est donc beaucoup plus long que quand on fait tout en interne (on doit discuter avec beaucoup de monde pour avancer).
En tout cas ce que tu cites on le gère (sauf la vidéo et le son, mais y’a déjà une grosse partie du travail fait), mais tout n’est pas encore accessible dans l’interface web (ça va venir sûrement assez vite). On devrait sortir une nouvelle version aujourd’hui d’ailleurs.
Movim aussi gère l’upload maintenant, et la passerelles IRC on utilise Biboumi (par un des auteurs de Poezio) qui est excellent.
On sort donc une version aujourd’hui, je ferai signe sur SeenThis, on apprécierait les retours justement :).
@ben @odilon j’ai testé avec un compte sur matrix.org, je trouve ça fluide et pas trop dur à utiliser. Je prends pas toute la mesure de la discussion sur les protocoles, mais je sais qu’au niveau des clients xmpp (à part adium sur mac) je me suis toujours cassée les dents, mais c’était il y a plusieurs années, je n’ai pas réessayé depuis. Tiens, je vais essayer salut à toi , pour voir.
@supergeante attends la sortie du coup, je vais mettre la démo à jour tout à l’heure, et y’a vraiment beaucoup de changements.
Et hop @supergeante en suivant le processus de @fil j’ai créé un compte ce matin en deux minutes @odilon:matrix.org
@goffi parle de marketing ... Wikipédia à propos de Amdocs :
Amdocs est une entreprise de services du numérique fondée en 1982 en Israël et basée à Chesterfield dans le Missouri. ... Effectif 22000 en 2015
C’est possible que dans une boite de 22000 personnes il y ait quelques personnes payées pour marketter ;)
@fil @goffi une grosse fonctionnalité de Matrix, qui fonctionne dès le départ, c’est le truc de l’historique synchronisé, qui est toujours le même pour tout le monde à l’intérieur d’une même discussion (de 2 ou plus personnes peu importe). Ce qui permet d’avoir toujours la même « vue » chez chaque participant, et de pouvoir chercher à l’intérieur, en arrière, même quand on est pas arrivé depuis le début, et surtout : même quand on s’y connecte depuis un autre client, une autre machine, qui n’avait encore aucun historique. Ce qui permet alors une utilisation à-la-slack, entre autre. De ce que j’avais compris pour l’instant, la différence n’est pas tant le protocole (JSON, etc), mais le fait que Matrix c’est avant tout « une base données synchronisée » (qui peut servir, parmi d’autres choses, à faire du chat).
Voilà pour moi, pour l’instant, c’est la plus grosse différence que je vois, largement avant les pseudo-histoires de rapidité, de vidéos, etc. Vu que je n’y connais rien, je ne sais pas si XMPP sait faire ce genre de synchronisation de manière standardisée dans une de ses extensions (et pas juste pour du blog mais bien pour n’importe quel message de chat avec n’importe quelle nouvelle arrivée dans une conversation).
Pour leurs arguments :
– s’il manquait des choses dans XMPP : vu leur budget et/ou leur bonne capacité technique, illes pouvaient parfaitement proposer des nouvelles extensions pour compléter (même si seul leur client perso aurait su les utiliser dans un premier temps : ce qui ne change rien à actuellement avec Matrix où seul leur client à eux sait faire ça)
– s’il n’y avait pas un client XMPP web et/ou mobile implémentant toutes les extensions les plus nécessaires à ce qu’illes voulaient : il pouvait parfaitement créer un nouveau client web et un nouveau client mobile : là encore ça ne change rien à ce qu’illes ont dû faire pour Matrix, à recréer un client à zéro
Au moins on aurait eu des clients XMPP web et mobile, modernes, beaux, etc, et qui fassent moult fonctionnalités d’un coup (comme @fil je pense que l’interface moderne, épurée, bien lisible, « flat », etc, fait beaucoup dans le marketing de leur projet…).
@rastapopoulos oui XMPP sait faire ça (avec 2 extensions : MAM (XEP-0313) et message carbons (XEP-0280)), qui sont en train petit à petit d’être intégrées partout (nous on ne s’en sert pas encore pour le chat, mais ça sera bientôt le cas).
Ça n’existait pas avant parce que c’est un problème qui est surtout apparu avec l’utilisation de plus en plus massive des téléphone portables en plus des machines de bureau, mais il n’y a aucune contrainte technique pour faire ça (et on voit bien une des forces de XMPP : il sait s’adapter).
Pour les clients XMPP modernes, tu peux déjà jeter un œil à Movim (►http://movim.eu) qui est dans le design à la mode, les gens le trouvent généralement très beau.
Après il y a bien sûr le notre, et on a une campagne de financement en cours (qui fini à la fin de la semaine), pour justement faire un client Android : ►http://www.arizuka.com/fr/projects/libervia
Donc :
▻http://xmpp.org/extensions/xep-0313.html
et
▻http://xmpp.org/extensions/xep-0280.html
Bon le « Archive Management » c’est en « experimental » pour l’instant… :D
Mais en tout cas c’est une bonne nouvelle ces deux extensions, merci de l’info ! Surtout si elles sont vraiment implémentées partout dans pas si longtemps.
Bon moi pour l’interface, je me casse pas la tête, je suis toujours sur Empathy par défaut, même si ça n’implémente pas assez de choses…
Ce qui fait qu’un outil comme ça obtient des adhésions rapides, j’ai l’impression que c’est la combinaison d’une interface sobre, belle et super rapide à prendre en main ET de fonctionnalités qui apportent vraiment un plus, soit parce qu’elles n’existent pas ailleurs, soit parce que dans cet outil ces fonctionnalités sont utilisables sans y penser, de manière très fluides.
Si je reprends le besoin de départ, sur Seenthis on parlait de chercher des alternatives libres à Slack.
▻http://seenthis.net/messages/414220
Et dans ce dernier ya notamment :
– interface vraiment efficace
– possibilité de chercher dans TOUTES les conversations (privées ou salons) auxquelles on participe (sur lesquels on a les droits quoi), et c’est très rapide
– apparemment ya une documentation de vraiment seulement 30 lignes à lire pour savoir parler avec en REST et envoyer du contenu dedans depuis des services (= faire des robots pour envoyer du github, gitlab, tickets, travis, lolcat, etc), ce qui a permis d’avoir rapidement des dizaines et des dizaines de services liés
Ici dans Mattermost par exemple (je sais pas ce qu’il y a derrière Mattermost ? IRC ?)
▻http://www.mattermost.org/features
Sympa le WebRTC Signalling.
A quand les @BoOz:seenthis.org ? (et la page ▻http://seenthis.net/@BoOz)
Bon le « Archive Management » c’est en « experimental » pour l’instant
Oui c’est comme ça que ça fonctionne, ça prend du temps mais ça avance. Mais je pense qu’on peut dire la même chose de matrix : c’est un projet super jeune, je ne vois pas trop comment ça pourrait être autrement qu’expérimental.
D’ailleurs sur leur page ils parlent d’« open standard », je serais curieux de voir comment c’est « standardisé » (bon au moins il y a une spéc : ▻https://matrix.org/docs/spec). Enfin pas le temps de creuser aujourd’hui (release en cours).
@supergeante c’est à jour. Pour l’avertissement sécu, cf ▻http://salut-a-toi.org/faq.html et il faut bien garder à l’esprit que c’est qualité alpha, y’a pas mal de bugs plus ou moins gros.
9 ans plus tard (bordel déjà) : Matrix est utilisé par un paquet de projets libres en remplacement ou en bridge synchro avec IRC.
L’interface est toujours aussi clean et rapide et ergonomique, et tout marche « du premier coup » (historique passé de toutes les convs, espaces dédiés regroupant plusieurs salons, vidéos, sons, etc.
Pas eu l’impression que XMPP (*et* ses clients : un protocole seul ne vaut rien s’il n’y a pas de multiples réelles implémentations faciles à utiliser par tout le monde) ait beaucoup avancé sur tous ces sujets (par ex ça fait des appels vidéos-audios qu’en one-to-one à priori, pas en groupe…).
Matrix est effectivement utilisé par pas mal de projets, par contre je vois aussi beaucoup de monde s’en plaindre (importance du serveur principal, très gourmand en ressources par design, clients tiers incomplets - oh tiens, ce qui était reproché à XMPP -, problème de chiffrements de bout en bout, etc.). On a passé le sommet de la courbe de hype, et on est sur la descente là.
Il y a eu des gros soucis avec leur bridge IRC aussi. Je n’ai pas le détail (je ne suis pas de très prêt), mais il me semble que LibreChat leur a coupé plusieurs fois l’accès.
Note pour rappel que je ne suis pas neutre (étant dev XMPP depuis 16 ans), et que je ne suis pas en guerre contre Matrix (je n’ai juste pas aimé leur comportement vis à vis de XMPP, mais maintenant qu’ils sont connus, ça va mieux).
Les appels à plus de 2 dans Matrix ont longtemps (c’est encore le cas ? Je crois qu’ils ont maintenant une solution maison) été faits via Jitsi, qui est un client XMPP. Donc ça me fait sourire de voir écrit que XMPP ne gère pas les communications à plusieurs (mais c’est vrai que peu d’autres clients le font, parce que c’est un gros chantier).
XMPP a énormément évolué aussi, il y a des projets comme Snikket qui facilitent l’autohébergement par exemple.
Ce qui différencie surtout les 2, c’est le budget : il y a une boîte avec beaucoup de monde payé à plein temps sur Matrix, alors que pour XMPP, en dehors des serveurs, c’est très rare d’avoir du monde payé, encore moins plusieurs personnes. Je le suis moi même via des subventions, mais à l’heure actuelle c’est compliqué. Je suis d’ailleurs en train d’essayer de monter une entreprise pour pouvoir salarier une équipe à terme.
Merci pour ces news @goffi !
Pour les bridges c’est le tunnel complet Libera qui a été bloqué, mais on peut bien continuer à faire un pont room par room avec d’autres modules/bots (ce qui oblige volontairement à un opt-in de la part des OP d’une room IRC), de ce que j’ai compris. Il y a plusieurs manières et plusieurs logiciels pour faire des ponts, et tout n’est pas bloqué. Pas encore joué avec, je voulais le re-tester pour SPIP justement…
Le format #json, #ajax et #jquery - Alsacreations
▻http://www.alsacreations.com/article/lire/1161-json-ajax-jquery-jsonp-getjson.html
Exemple (de base) d’utilisation de JSON avec #javascript et/ou jQuery
ColorBrewer: Color Advice for Maps
▻http://www.colorbrewer2.org
un outil pour générer des styles de coloration pour représentation cartographiques de données. Exportation en #css, #javascript, #json + palettes SVG / GIMP
Incroyable ! il n’était pas déjà pointé ici.
Je m’en sers tout le temps…
Si si, déjà pointé :)
▻http://seenthis.net/messages/78835
Ah oui ! ça m’étonnait aussi… C’est à cause des www dans le lien du billet ci-dessus.
Sans les w, c’était déjà 8 fois (dont la moitié par moi ;-)
1.7 billion #JSON objects: #dataset of every publicly available comment on #Reddit.
▻https://www.reddit.com/r/datasets/comments/3bxlg7/i_have_every_publicly_available_reddit_comment
Il ne faut plus mettre de jQuery du genre :
$(function() {
faire_un_truc();
});
Du coup, si on met du jQuery directement dans la page, on a une erreur puisque jquery.js
n’est pas encore chargé quand on fait l’appel au $
.
C’est notamment le cas avec des #plugins #SPIP, dont justement deux qui m’intéressent :
– photoSwipe
– varnish_stats
Il faut passer tous les déclenchements dans des scripts séparés, quitte à ne conserver dans le corps de la page que des variables (dont la valeur serait connue uniquement dans grâce au squelette SPIP).
(Je le ferais bien moi-même, mais mon SVN est tout cassé – j’ai eu l’idée saugrenue d’installer MacOS El Dorado sur ma machine.)
Concrètement, ça donne quoi du coup ?<script src="URL" async></script>
partout ?
SPIP permet déjà de quasiment tout charger en asynchrone. L’activation est pour l’instant par constante pour ne pas casser l’existant, si jamais il reste du code pas compatible.
▻http://zone.spip.org/trac/spip-zone/changeset/85361/_core_/plugins/compresseur
Et la documentation de comment ça marche :
►http://www.yterium.net/jQl-an-asynchronous-jQuery-Loader
generatedata.com
▻http://www.generatedata.com/#generator
#génération_de_données #Lorem_ipsum_de_données_structurées
via Korben
tmcw/awesome-geojson
▻https://github.com/tmcw/awesome-geojson
GeoJSON utilities that will make your life easier.
d’habitude je fuis ce genre de compilation, mais cette fois je veux bien faire une exception :)
Le format #JSON a largement remplacé XML dans les applications Web et sert aujourd’hui de base à plein d’applications. Il était donc logique qu’on cherche à la sécuriser par la #cryptographie et c’est le rôle du groupe de travail #JOSE (JavaScript Object Signing and Encryption) de l’IETF qui vient de publier une série de normes sur la signature et le chiffrement de textes JSON.
▻http://www.bortzmeyer.org/jose.html
#RFC
{
"recipients": [
{
"encrypted_key": "laLxI0j-nLH-_BgLOXMozKxmy9gffy2gTdvqzfTihJBuuzxg0V7yk1WClnQePFvG2K-pvSlWc9BRIazDrn50RcRai__3TDON395H3c62tIouJJ4XaRvYHFjZTZ2GXfz8YAImcc91Tfk0WXC2F5Xbb71ClQ1DDH151tlpH77f2ff7xiSxh9oSewYrcGTSLUeeCt36r1Kt3OSj7EyBQXoZlN7IxbyhMAfgIe7Mv1rOTOI5I8NQqeXXW8VlzNmoxaGMny3YnGir5Wf6Qt2nBq4qDaPdnaAuuGUGEecelIO1wx1BpyIfgvfjOhMBs9M8XL223Fg47xlGsMXdfuY-4jaqVw"
}
],
"protected": "eyJhbGciOiJSU0ExXzUiLCJraWQiOiJmcm9kby5iYWdnaW5zQGhvYmJpdG9uLmV4YW1wbGUiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0",
"iv": "bbd5sTkYwhAIqfHsx8DayA",
"ciphertext": "0fys_TY_na7f8dwSfXLiYdHaA2DxUjD67ieF7fcVbIR62JhJvGZ4_FNVSiGc_raa0HnLQ6s1P2sv3Xzl1p1l_o5wR_RsSzrS8Z-wnI3Jvo0mkpEEnlDmZvDu_k8OWzJv7eZVEqiWKdyVzFhPpiyQU28GLOpRc2VbVbK4dQKPdNTjPPEmRqcaGeTWZVyeSUvf5k59yJZxRuSvWFf6KrNtmRdZ8R4mDOjHSrM_s8uwIFcqt4r5GX8TKaI0zT5CbL5Qlw3sRc7u_hg0yKVOiRytEAEs3vZkcfLkP6nbXdC_PkMdNS-ohP78T2O6_7uInMGhFeX4ctHG7VelHGiT93JfWDEQi5_V9UN1rhXNrYu-0fVMkZAKX3VWi7lzA6BP430m",
"tag": "kvKuFBXHe5mQr4lqgobAUg"
}
@Fil Je crois qu’il y a un problème de terminologie. Un « texte », en JSON, est un truc JSON (en général un objet mais cela peut être un tableau).
Pour signer un objet, oui, on l’encode en Base64 et on signe le résultat. (section 5 du RFC 7515)