Text

L’esprit d’escalier… Je lis cet article de Slate (ici en français) sur la XBox One, et je me dis qu’elle a vraiment presque tout pour plaire. Presque tout ? Oui, car tous les verrous technologiques dont elle est truffée sont tout de même un peu coupe-joie : interdiction de prêter ou de revendre ses jeux, obligation d’être connecté à Internet, caméra Kinect ouverte en permanence… Microsoft renoue ici avec le pire ses velléités de contrôle absolu, un peu comme au temps de Vista qui prétendait un temps de pouvoir contrôler tout ce qu’on copierait sur notre disque dur, généralisant les DRMs. La fonctionnalité n’a pas vu le jour mais l’idée à fait des petits et nous avons de moins en moins de contrôle sur cette vie numérique qui devient de plus en plus importante pour nous.

L’esprit d’escalier, alors je me dis : à quand un outil aussi fabuleux mais ouvert ? Car le monde de l’informatique ouvert évolue lui aussi. On peut déjà se fabriquer un media center pour moins de 50€ à l’aide d’un Rapsberry Pi et de XBMC. Mais on n’est quand même loin du compte, en cause les interfaces des nouveaux jouets d’Apple, Google et Microsoft : Siri, Kinect, Wiimote et consort. Celles-ci ont en commun de fonctionner grâce à des capteurs, des logiciels de traitement du signal et des bases de connaissance.

Les bases de connaissance, justement. Le nerf de la guerre. Lorsque Siri me demande de répéter un ordre, c’est non seulement pour trouver à quoi il correspond, mais aussi aussi pour analyser l’ordre non compris et l’ajouter à sa base de connaissance : “OK, ce signal aussi correspond à cet ordre, c’est noté pour la prochaine fois”. Plus la base est complète, meilleure est la performance. Pour améliorer les performances, il suffit d’augmenter la base de connaissances, et donc la capacité de stockage, ainsi que la mémoire vive.

La base de connaissance, une richesse jalousement gardée. Chez myTwatch, nous utilisons des bases de connaissance linguistique pour détecter la tonalité (sentiment exprimé) des messages que nous analysons. Il existe bien quelques bases linguistiques Open Source comme wordnet, mais la plupart des ressources restent propriétaires et très protégées. Chacun constitue les siennes avec des recettes qui lui sont propres.

Vers des bases communes et ouvertes ? Alors pourquoi ne pas constituer des bases de connaissance ouvertes d’analyse vocale, de détection de mouvements, etc ? Celles-ci seraient continuellement enrichies par leurs utilisateurs, et utilisables pour des projets libres et sans verrous à tous les coins. Bon alors, on s’y met ?

Text

Dans mes projets PHP sous SVN, j’avais l’habitude de mettre les fichiers de conf en SVN ignore. Au moment du déploiement, il suffisait de renommer un fichier de conf modèle, de modifier quelques define, et hop, roule ma pool (de connexions). En gérant mes branches comme des projets différents dans mon IDE, je pouvais aussi avoir plusieurs modèles de configuration différents, et par exemple, adresser plusieurs bases de données.

En passant sous GIT j’ai voulu calquer le même principe. Mais seulement voilà, GIT est beaucoup plus performant et puissant pour le changement de branches. Je devrais être content, seulement profiter de cette puissance est adresser des configurations différentes selon la branche devient difficile. Soit la conf est dans .gitignore et je la partage pour toutes les branches, soit elle est dans le repository, et est identique sur toutes mes instances de production et sur mon environnement de développement.

Après quelques recherches, j’ai néanmoins trouvé une petite astuce qui permet de récupérer la branche courante. Dans le shell :

$ git branch | awk ‘/^\*/ { print $2 }’

vous donnera “master” par exemple.

En PHP, vous n’avez qu’à brancher sur un switch :

$branch=exec(“git branch | awk ‘/^\*/ { print $2 }’”);
switch($branch){
    case ‘branche1’:
        define(‘DATABASE’,’mabase_branche1’);
        break;

    …


    case ‘master’:
    default:
        define(‘DATABASE’,’mabase_master’);
}

Bien entendu, ce hack n’est utile que sur votre environnement de développement.

Link

myNoSQL: A Short History of NoSQL, SQL, NoSQL

nosql:

A short history of the evolution from NoSQL to SQL to NoSQL, posted on the NoSQL group by Konstantin Osipov, one of the authors of Tarantool

Way back in the 1960s databases didn’t separate data representation and data access.

To navigate in an index, a database user had to know the…

Source : nosql
Text


Être et avoir, ou plutôt être et faire. C’est le dilemme de la publication sur les réseaux sociaux. Soit vous décrivez qui vous êtes, soit vous racontez ce que vous faites. Ciblage versus contenu. Et jusqu’à peu, on aurait pu dire que Facebook était le réseau de l’Être et Twitter celui du Faire. Bien entendu Facebook permet de raconter ce que l’on fait, mais avec Timeline, il semble que la priorité soit plus à la description. Votre date de naissance, votre ville, la date à laquelle vous avez perdu votre première dent de lait,… Le faire est délégué aux applications tierces, automatisé par le biais de l’Open Graph. A contrario, Twitter se fout de qui vous êtes. 250 caractères pour vous décrire, that’s all. Twitter est un fleuve d’informations et vous être un ruisseau qui l’alimente sans cesse.

On comprend bien la démarche de Facebook. L’intérêt d’une telle base de données. Non seulement vous êtes fidélisés par toutes ces informations, mais en plus vous valez plus cher. Sur Twitter l’info est immédiatement périmée, les conversations se vivent en temps réel ou pas du tout. Et d’ailleurs, c’est Facebook que Google+ a choisi de copier, pas Twitter. Et c’est bien dommage pour nous, utilisateurs.

Car l’anonymat relatif d’un Twitter, avec l’autorisation du pseudonyme, avec le follow à sens unique basé sur l’intérêt du contenu publié permet de se lâcher là où on est de plus en plus bloqués sur Facebook. On y est ami avec sa mère, son boss, ses profs, ses exs, ses enfants… A chaque fois que je pose la question autour de moi, j’obtiens la même réponse. “Oui je continue d’aller sur FB, mais je n’y poste plus rien. Et d’ailleurs, il n’y a plus rien à y lire”. L’essentiel du flux est maintenant alimenté par les automatismes de l’Open Graph et les pages de marques. Alors que de l’autre côté, Twitter est en plein boom. Chez myTwatch, nous avons analysé des live tweets d’émission en prime time qui dépassaient les 500 messages par minute. En France !

Alors que l’activité réelle sur Facebook semble moribonde, que celle de Google + n’a jamais décollé (on leur avait pourtant dit de l’ouvrir, leur API) celle de Twitter est en pleine forme. Mais elle reste fragile. Pas forcément sensible aux fermetures d’API, mais plus à l’arrivée des données personnelles sur Twitter. Alors Twitter ira-t-il copier Facebook ? Deviendra-t-il lui aussi une machine à ciblage marketing ? Ou trouvera-t-il un moyen de capitaliser sur sa force, le contenu ?

Pas évident tellement la rentabilité d’un réseau social semble par nature opposée à sa valeur d’usage. Comme si rendre l’information moins liquide, l’entraver - par de la pub, l’alourdir - par des stories sans intérêt, permettait comme avec une dynamo, de générer plus de profits. Enfin ça, c’est le point de vue des Facebook et autres, et on saura bientôt si la monétisation des réseaux sociaux telle qu’ils l’imaginent fonctionne ou pas. En effet, les premiers retours d’expérience sur la pub sur Facebook commencent à arriver (et ils sont plutôt mitigés). Encore une fois, je me pose la question de notre intérêt à nous, utilisateurs, et des nuisances que l’on acceptera pour conserver l’accès à ces formidables outils et pour garder nos données en sécurité. Car celle-ci ne sera garantie que par un modèle économique viable et compatible avec nos attentes. Et là, le moins que l’on puisse dire, c’est que le match reste ouvert.

Photo
littlebigdetails:

Foodivide - When you try to sign up for their newsletter with the same address twice, they appreciate the enthusiasm./via Shein 

littlebigdetails:

Foodivide - When you try to sign up for their newsletter with the same address twice, they appreciate the enthusiasm.

/via Shein 

Source : littlebigdetails
Photo
littlebigdetails:

bud.ge - The settings screen for to-do reminders is designed like a letter.
/via itshunkydory

littlebigdetails:

bud.ge - The settings screen for to-do reminders is designed like a letter.

/via itshunkydory

Source : littlebigdetails
Text

Mongo c’est bien, c’est beau, c’est simple. Tellement simple que lorsque vous installez Mongo quelque part, vous pouvez vous y connecter de partout, sans mot de passe ni rien.

Vous pouvez vous y connecter, vous, ou n’importe qui. Grand open bar sur vos données.

Mongo vous propose plusieurs moyens pour sécuriser la base (sécuriser MongoDB) :

  • L’authentification user/password
  • La keyphrase (nécessaire pour les Replicats Sets et Shards)
  • Ne binder qu’une IP. Une seule… Comme si on installait un Mongo que sur 1 serveur…

Sinon, ou en plus de tout cela, vous pouvez toujours sécuriser via un Firewall. C’est ce que j’ai fait, sans être expert du tout de iptables (quelqu’un à un badge newbie pour moi ?)… Mes serveurs sont Ubuntu.

Chaque instance Mongo doit être accessible par les autres membres du Replicat Set, ainsi que par les serveurs applicatifs. J’ai donc choisi d’autoriser une liste d’IP et d’interdire le reste du monde. Comme j’ai procédé par appels successifs à la commande “iptables”, mes règles sont exécutées dans l’ordre inverse de leur création. Pour obtenir l’effet “autorise a, b, et c et rejette le reste”, il faut donc faire “rejette tout le monde, autorise c, autorise b, autorise a”. 27017 est le port par défaut de Mongo. Vous pouvez bien sur modifier celui-ci dans vos installs, c’est même recommandé.

Les commandes doivent être passées avec des privilèges administrateur.

Interdire tout le monde

$ iptables -I INPUT -p tcp -m tcp --dport 27017 -j DROP

Ouvrir l’adresse locale

$ iptables -I INPUT -s 127.0.0.1 -p tcp -m tcp --dport 27017 -j ACCEPT

Ouvrir vos serveurs

$ iptables -I INPUT -s ip.votre.serveur.1 -p tcp -m tcp --dport 27017 -j ACCEPT
$ iptables -I INPUT -s ip.votre.serveur.2 -p tcp -m tcp --dport 27017 -j ACCEPT
...
$ iptables -I INPUT -s ip.votre.serveur.n -p tcp -m tcp --dport 27017 -j ACCEPT

Troubleshooting

Ré-ouvrir à tout le monde

Il suffit de supprimer la règle “interdire à tous”. On retape la même commande mais avec “-D” (delete) au lieu de “-I” (insert)

$ iptables -D INPUT -p tcp -m tcp --dport 27017 -j DROP

Lister les règles actives

$ iptables-save | grep 27017

Et vous, vous faites comment ?

Photo Set

ruineshumaines:

Art Game by Leo Caillard.

On Tumblr.

This recent work is a reflection on the problem of our new digital world.Currently, at any stage of its creation, any idea or concept is digitally adapted.What will be retained in the future? What will happen to all of these billions of megabytes we stock on computers? In 10 years? In 500 years? Colliding the esthetic of modern minimalist Apple products with the classical architecture of the Louvre Museum, the viewer is forced to assess the question of new creation in our modern society.”

Source : ruineshumaines