PhoneBloks : le téléphone suivant vos besoins

L’autre jour en regardant la télé, je suis tombé sur une vidéo parlant d’une initiative intéressante : phonebloks.
Cette initiative part du constat suivant : souvent on jette nos smartphones parce qu’une pièce est défectueuse, ou qu’on veut plus de batterie ou de processeur, etc.

L’idée est simple, le téléphone est fait d’un écran qui se clippe sur une carte perforée conductrice (comme celles qu’on utilise pour les montages électroniques). De l’autre coté de la carte, on clippe les éléments qui nous intéressent pour faire le smartphone qu’on souhaite.
Vous voulez une grande autonomie ? Vous mettez un gros block batterie. Vous voulez avoir un super appareil photo ? Vous mettez l’accent sur ce point avec le block correspondant, etc.
Ca vous permet de faire un portable à la carte dont toutes les pièces sont interchangeables suivant vos envies, vos besoins. Si une est détériorée (écran cassée, batterie morte, etc), vous n’avez qu’à la changer.

D’après ce qui est prévu, l’OS détectera la nouvelle pièce et la prendra en compte.

Je ne sais pas ce que vous en pensez, mais je trouve l’idée génial.

Bonnes pratiques de développement : 1er partie – les sessions

Bonjour à tous,

Aujourd’hui, je fais un petit article sur le développement, et plus particulièrement l’utilisation des sessions.
Je pense que pour beaucoup d’entre vous qui font du développement c’est une notion bien connu, mais ça ne fait pas de mal de faire une piqûre de rappel.

La session : quézako ?

La session est une période de temps durant laquelle le client est connecté de façon unique sur un serveur.
Pour cela, très souvent, nous (les développeurs) mettons des informations liées au client dans la session du serveur afin de pouvoir savoir qui réalise l’opération.
Exemple en php :
$idUser = $_SESSION['idUser'];
Dans l’exemple ci-dessus, on récupère l’identifiant unique de l’utilisateur présent en session

Les sessions sont indispensables dans tout site actuel. Cependant, ça devient vite fourre tout.

La bonne utilisation des sessions

La session ne doit en principe stocker que les informations qui servent partout sur le site. Habituellement, il s’agit du numéro d’identifiant de l’utilisateur de la base de données. En effet, ce nombre permet de savoir qui est la personne, puisqu’il est unique (un peu comme votre numéro de sécurité sociale).
Si un site affiche sur toutes ses pages le nom de la personne, alors il peut être intéressant de le mettre en session aussi afin de ne pas faire des requêtes en base à chaque chargement de pages. Encore qu’il existe d’autres solutions que la session dans ce cas (la mise en cache par exemple).

Le problème est que très souvent des développeurs inexpérimentés se servent de la session comme un fourre tout.

    Quelques exemples véridiques de session fourre tout :

  • la liste de résultat d’une recherche mise en session. Pas les critères de la recherche, mais bien la liste de résultats. o_O
  • la liste des communes des départements
  • des formulaires entiers
  • etc
  • Les impacts d’une mauvaise utilisation

    Cette partie va plus porter sur le fonctionnement java, mais reste vrai en général.
    Le problème de mettre tout et n’importe quoi en session, c’est qu’elle est stockée en mémoire vive et reste rempli tant que l’utilisateur est connecté. S’il se déconnecte, la session se vide, mais s’il ne le fait pas (ferme son navigateur par exemple), la session reste en mémoire tant que le time out du serveur n’est pas arrivé (très souvent c’est 30min).
    Si vous n’avez qu’un utilisateur sur votre site, mettre tout en session n’est pas un problème, votre serveur tiendra la charge. Mais maintenant imaginez un site comme chronodrive. S’ils utilisent à tort la session, le serveur tombera très rapidement.
    J’ai déjà vu sur certains projets sur lesquels j’intervenais, des serveurs qui tombaient à cause de la trop grosse utilisation de la mémoire par le processus java dû à une mauvaise gestion de la session.

    Les remèdes

    Si vous en êtes au début de votre développement, préférez les requetes en base ou l’utilisation du cache pour les informations non essentielles.
    Il vaut mieux avoir une base de données bien pensée, avec des requêtes optimisées, qu’une session qui récupère la moitié de la BDD à cause des temps d’accès.

    Si vous avez déjà développé votre site et que ce dernier ne tient pas la charge, vous avez deux solutions : la première vous essayez de mettre en place un cache et vous allégez la session. La deuxième, vous n’avez qu’à tout recoder. j’exagère un peu mais j’ai déjà eu affaire à des projets où ça a été la seule solution. En effet, la session était une vrai poubelle et la BDD n’était pas optimisée. Aussi dès qu’il y avait 10 utilisateurs en simultanés sur le site, ce dernier s’effondrait.

    Pour conclure, la session est un outil très pratique, mais elle ne doit servir qu’à stocké des informations indispensables au bon fonctionnement du site. Quand ça dépasse une dizaine de variable (et encore, là je suis très généreux) c’est qu’il y a un problème dans votre site et que vous devriez le repenser (revoir son architecture, la BDD, etc).

Téléphoner sans carte sim

Non, je ne me moque pas de vous, il est possible de téléphoner sans carte SIM ni réseau. Comment me direz vous : c’est simple, une petite application Android appelée Serval le permet.
Cette application crée un réseau Mesh via l’émetteur wifi du téléphone. Dès qu’un autre téléphone utilise l’application, le réseau est étendu. Si vous appelez quelqu’un proche de vous (à porté du wifi), l’appel se fait directement, sinon l’appel va utiliser les autres téléphones du réseau afin d’attendre votre destinataire et ce sans manipulation de votre part.

Comme toute nouveauté, ce système a des avantages et des inconvénients.
Commençons par les avantages : tout d’abord, vous n’avez pas besoin d’avoir une carte sim pour téléphoner (c’est l’intérêt même de ce système). Ce système est très intéressant lorsque vous êtes à l’étranger par exemple.
Ensuite, les gouvernements ne peuvent pas, actuellement, surveiller ces communications. En effet, les services de renseignements écoutent les appels via satellites ou lorsqu’ils passent par un fournisseur (par exemple Orange ou Free). Comme le réseau Mesh est indépendant, il n’est pas écouté. Si l’usage se démocratise, il y a fort à parier que ces services utiliseront des mouchards qu’ils mettront sur le réseau (téléphone espion par exemple), et que les fournisseurs téléphoniques chercheront à faire interdire ce système.

Passons aux inconvénients maintenant : vous ne pouvez utiliser l’application que si votre téléphone est rooté. Ce point est un peu gênant car la majorité de la population utilisant un smartphone sous Android ne le root pas.
Vous ne pourrez appeler votre correspondant que s’il est couvert par le réseau Mesh. C’est-à-dire que pour que ça fonctionne, il faut être nombreux à utiliser ce système.
Et même si tous les téléphones utilisaient ce système, vous ne pourriez pas appeler aux USA par exemple. L’espace entre la France et les USA n’étant pas couverte par le réseau Mesh (à moins d’y laisser des smartphones, mais ça va vite couter cher 🙂 ), l’appel n’aboutira pas.

En conclusion, je trouve cette initiative très intéressant. Mais pour qu’elle soit fonctionnelle nous devons être nombreux à l’utiliser. Ainsi, nous regagnerons en autonomie et en indépendance par rapport aux fournisseurs de téléphonie mobile et nos communications resteront privées contrairement à maintenant.

Le #PRISM à la française

Bluettouf nous rappelle sur son site qu’en même temps que la nouvelle sur le programme PRISM sortait, Le Monde publiait un article sur un système d’écoute du trafic internet mise en place par la DGSE.

Ce qui est marrant, c’est que cette nouvelle est passée complètement inaperçu à cause de PRISM. Pourtant si on regarde de près, il s’agit de la même finalité : surveiller les gens sur Internet. Sinon que le système de la DGSE est plus intrusif que PRISM. Comme ils n’ont pas passé de contrat avec Microsoft and Co, ils utilisent du DPI via des installations hors du territoire. Le DPI leur permet de tout voir et non pas seulement les 8 gros géants du net, et comme les infrastructures ne sont pas sur le territoire, ils ne répondent pas à la loi française.
Comme les installations ne sont pas sur le territoire, ils ne voient que le trafic qui sort de France : ce qui est le cas lorsque vous allez sur Youtube, Google, Gmail, Apple, …, en gros une énorme partie de votre trafic.

En résumé, tout ce que vous faites, qui transite en dehors du pays, peut et doit surement être vu par les agents de la DGSE et ce en dehors de tout cadre légal, puisque les interceptions ne se font pas sur le territoire français.

#PRISM, quelques alternatives intéressantes

Le programme PRISM défrait la chronique en ce moment. Du coup, certaines personnes voudront essayer d’améliorer la protection de leur vie privée.

Numérama a publié un article sur le sujet qui liste quelques solutions intéressantes.
Parmi les solutions, je me suis surtout intéressé à la partie Android. J’ai installé Orbot, qui permet d’utiliser le proxy Tor simplement; et TextSecure. Ce dernier est intéressant car il stocke les sms dans une base de données chiffrée sur le téléphone. Ainsi, si vous vous faites voler votre smartphone, sans le mot de passe le voleur ne pourra pas accéder à vos sms (si vous n’avez pas dévérouillé les sms bien sur). En plus, si vous envoyez des sms à quelqu’un qui a lui aussi TextSecure, le programme vous proposera d’échanger vos clefs publiques afin de vous envoyer automatiquement des sms chiffrés. Ca reste transparent pour l’utilisateur, sinon qu’il y a un petit cadenas à côté du sms chiffré pour indiquer son état. En résumé, TextSecure protège vos sms en les stockant dans une base de données chiffrée et permet d’envoyer des sms chiffrés à vos contacts qui utilisent eux aussi TextSecure.

Concernant les autres solutions, j’utilise déjà owncloud et Piwik et j’en ai déjà parlé, donc je ne le referais pas maintenant. Et pour les mails, plutôt que RiseUp, je me suis intéressé à Autistici. Cette solution n’est pas listée sur le site mais je la trouve intéressante aussi. Lorsque j’aurais un retour sur Autistici, je vous le dirais.

Voila quelques pistes pour augmenter la protection de votre vie privée. Après, il ne s’agit pas de tomber dans la paranoïa et garder à l’esprit que si un gouvernement veut vraiment savoir ce que vous faites, ils le sauront.