Informatique

Nexus 4

Wednesday, 18 June 2014
|
Écrit par
Grégory Soutadé

Nexus 4

Nexus 4

Heureux possesseur d'un Nexus 4 depuis 6 mois (sortie officielle novembre 2012), je me suis demandé : "Et si je devais changer de téléphone, lequel prendrais-je ?". Le marché du téléphone intelligent (smartphone) est saturé, toutes les gammes sont couvertes : de 50€ à 800€ (à la louche). Pourtant, il n'y a plus de réelles innovations depuis un certain temps et, la pression du marché qui veut un nouveau modèle chaque année bride un peu l'impulsion créatrice des constructeurs.

Les principaux axes novateurs sont logiciels avec, d'une part les applications disponibles (mais non lié à un constructeur) et, d'autre part, le système d'exploitation, mais ça reste le plus souvent cosmétique. Côté matériel, c'est la course à la puissance (processeur, mémoire...), à l'affichage haute définition (et/ou taille de l'écran) et au capteur photo. Apple a introduit le lecteur d'empreinte, mais c'est plus un outil de fichage qu'une réelle innovation...

Néanmoins, le Nexus 4 (fabriqué par LG) se distingue dans sa catégorie par deux innovations qu'on ne retrouve pas (ou peu) ailleurs :

  • Une petite LED multicolore en bas de l'écran. Gérée avec des applications comme "Light Flow lite", elle permet de connaître l'état du téléphone (batterie faible, appel manqué, nouveau SMS...) sans avoir à allumer l'écran, ce qui offre un gain de temps et d'énergie incroyable.
  • Il est compatible Qi. Qi est une norme de transmission d'énergie sans fil. Dans notre cas, il s'agit de pouvoir recharger son téléphone par induction. De multiples supports Qi sont disponibles, ils vont en général de 20€ à 80€. La charge complète dure un peu plus de 3h.

C'est deux fonctionnalités ont été reportées dans le Nexus 5, mais je trouve l'écran trop grand. Le reste, c'est Android qui le fournit, et particulièrement le mode glissé (swype) de l'application SMS que j'adore !

Côté batterie, elle tient entre 7 et 10 jours pour mon utilisation (faible). Cerise sur le gâteau : le téléphone est nu de toute surcouche logicielle et c'est le premier (et le mieux supporté) à recevoir les mises à jour pour Android !

Finalement, son prix attractif (< 400€) en fait (de mon point de vue) le meilleur téléphone. Ce qui ne cache pas non plus certains défauts :

  • Pas de tuner radio
  • Bords de l'écran fragiles (dont nécessité ABSOLUE d'avoir une coque)
  • Capteur photo médiocre

Mon chargeur Qi: Chargeur Qi Google

Obsolescence programmée

On parle souvent d'obsolescence programmée, de non réparation des matériels modernes... Pourtant, après une chute d'un petit mètre, l'afficheur LCD s'est cassé (mais pas la vitre). Suite à ce choc, les deux tiers des pixels sont morts. Pour 160€ pièces et main d’œuvre (ça fait mal par rapport au prix du téléphone neuf...), j'ai pu le faire changer (en réalité il faut changer tout le bloc écran).

L'obsolescence programmée est un concept biaisé, une sorte de théorie du complot. Il s'agirait d'introduire volontairement un défaut dans le produit afin que le consommateur le renouvelle régulièrement. Si certaines techniques ont pu être utilisées, voir le sont encore, cela reste assez marginal de nos jours. Ce mythe comme propagé par ce site résulte d'une incompréhension des effets pervers de la société de consommation et d'une progression technologique hyper rapide. Gageons que l'article Wikipediesque est beaucoup plus raisonné.

On la divise en deux causes majeures : causes psychologiques et causes matérielles.

Causes psychologiques

Le consommateur est toujours poussé vers des produits nouveaux. Particulièrement les produits ou gadgets avec une dimension esthétique forte. La cause est le marketing et le matraquage publicitaire. Il est alors opportun de parler de "con sommateur" car, si on regarde précisément les faits, personne ne nous oblige à rester scotché devant la télévision, personne ne nous oblige à renouveler nos appareils fonctionnels. D'un autre côté, le marché (donc les consommateurs) est très friands de nouveauté, toujours, tout le temps. Si, dans un autre monde, la population tentait de faire durer ses produits le plus longtemps possible (marché de l'occasion, réparations...), ce qui est le cas en Afrique, les industriels ne feraient pas cette course effrénée à la nouveauté.

Mais la mode et la jalousie sont des sentiments intrinsèques à l'humain. Le seul reproche que l'on peut adresser à la société est un manque d'éducation par rapport à ces notions. Paradoxalement, la succession des crises économiques et politiques commencent à freiner le mouvement consumériste débuté à la sortie de la dernière guerre mondiale.

I've got an iPhone, an iPad, iPhoto and an iBook... Now I just have to get an iLife...

Causes matérielles

Miniaturisation, réparations à prix exorbitant, manque de pièces de rechange, incompatibilité, pièces de mauvaise qualité. Commençons par les vrais arguments. Les pièces de rechange sont peu ou pas disponibles et les réparations sont chères. C'est vrai, le marché de l'occasion et de la réparation s'est perdu avec l'hyper industrialisation. On considère les biens (quels qu'ils soient) comme des "consommables".

Incompatibilité et miniaturisation ? Désolé de vous apprendre quelque chose, mais le monde évolue et, en tant qu'ingénieur, je suis bien placé pour le voir. Les techniques s'affinent, les outils et les process que l'on met en place permettent d'être toujours plus efficace. C'est le cercle vertueux de la technologie : chaque outil permet de fabriquer un outil encore plus performant. On ne peut hélas pas sauter les étapes pour créer le produit parfait du premier coup. Cela entraîne des incompatibilités : mon lecteur CD ne lit pas les cassettes audio...

La miniaturisation rend les appareils plus performants, mais aussi plus difficile à réparer. C'est mal ? alors, qui de nos jours souhaiterait se balader avec un téléphone "portable" des années 90 ? On ne peut pas demander à un humain d'intervenir sur des composants de taille inférieure au millimètre.

Phone bloks

Des gens ont lancé l'idée d'un téléphone en "blocs", l'idée est bonne, mais la compacité (et l'esthétisme) d'un téléphone vient du fait que tout est intégré, intégration complexe pour assurer des performances maximales (la batterie fait la taille de l'écran par exemple), chose que l'on ne peut pas à l'heure actuelle assurer en séparant les blocs. C'est un peu comme pour une maison, on ne peut pas changer de toit du jour au lendemain, on ne peut pas changer de dimensions de fenêtres à la volée. On la construit d'un bloc.

Les pièces sont de mauvaise qualité ? Comme dans mon article précédent, c'est plus un problème de coûts de fabrication et d'acceptation du marché que de l'obsolescence. Une mauvaise qualité influe sur l'image de marque des sociétés, ce qui n'est pas négligeable (cf Apple).

Conclusion

Réelle ou imaginaire, l'obsolescence programmée cache surtout la surconsommation catastrophique et irréversible de notre société... Il est urgent de n'apprendre à consommer que ce qui est nécessaire !

J'admire les pauvres, ils génèrent tellement moins de déchets que nous !

Facebook 2 email

Sunday, 04 May 2014
|
Écrit par
Grégory Soutadé

Un nouveau service accessible depuis Cybelle : f2email. Il s'agit d'une application PHP exploitant la Graph API de Facebook afin d'être notifié par email des nouveaux événements provenant de nos amis et pages que l'on suit.

Au départ le besoin est simple : un restaurateur de Sophia Antipolis publie chaque jour le menu sur un compte Facebook et donc, quasiment chaque jour, on me demande de partager ce menu sur l'intranet. F2email permet désormais d'automatiser ce traitement, mais pas que ! En effet, je vais de moins en moins sur Facebook, pourtant j'aimerais suivre mes "likes" qui sont souvent des groupes de musique que j'aime bien (l'ère de la mailing list est terminée :(). De plus, f2email a été conçu pour être modulaire : actuellement, il n'y a qu'un seul module (email) d'implémenté, mais on pourrait en créer d'autres, comme par exemple l'insertion automatique sur Pastebin ou l'inscription dans des agendas.

Qui dit Facebook, dit convoitises. J'ai toujours peur que le serveur soit corrompu, l'application a donc été développée avec cette idée en tête. C'est pour cela qu'une fois déconnecté (logout), un maximum de permissions sont retirées du jeton d'accès (access token). Il ne restera que les permissions de base, les adresses email (nécessaires pour l'administration et l'envoie d'email), ainsi que les numéros d'identifiants des cibles. Cela fait hélas encore beaucoup, mais comparés aux autres sociétés, ici, tout est fait pour garder un maximum d'anonymat. Il n'y a ni utilisation, ni revente des données personnelles !! Il y a aussi un lien permettant de supprimer toute trace de son passage dans la base de données.

L'application serveur est comme d'habitude disponible sous licence GPL sur ma forge. On pourra aussi remarquer le design épuré dont moi seul a le secret :)

Actuellement, le serveur est programmé pour faire un "run" (aller voir s'il y a des nouvelles) à 11h du soir et 11h du matin. De plus, seules les cinq dernières notifications (par likes/amis) sont transmises. Par contre, ça ne sert à rien de vouloir espionner quelqu'un, la graph API est très restrictive quand on n'est pas ami avec une personne (un peu plus cool pour les pages).

Dynastie 0.2

Monday, 28 April 2014
|
Écrit par
Grégory Soutadé

Logo Dynastie

Voilà un peu plus d'un an que la première version de Dynastie est sortie (et plus d'un an et demi qu'elle est fonctionnelle). La version 0.2 a été crée dans la foulée suite aux remarques (notamment de Denis Bernard), mais elle manquait de substance (juste bon à faire une 0.1.1). Il n'y a pas eu de révolution depuis, mais une suite d'améliorations :

  • Le support de la syntaxe Markdown
  • Les templates "base" supportent l'inclusion de multiples blocs
  • Simplification de l'installation
  • Les marqueurs "dyn:post _ url" et "dyn:post _ full_url" dans la directive "replace", ainsi que "#comment _ number" dans les commentaires
  • Générateurs "Tous les articles" et "Les joies du code" (à partir de la sortie d'un script perl).
  • La recherche d'un article dans l'interface d'administration
  • Quelques bugs corrigés (trim des commentaires, double quotes dans les tag metas, retours à la ligne dans les commentaires).

Contrairement à ma première idée, Markdown fait son entrée dans la place (avec quelques extensions persos). En effet, je me suis rendu compte que la syntaxe épurée était suffisante pour 90% des articles qui n'ont pas besoin de mise en page "complexe". Néanmoins, on y perd au passage le support de la coloration syntaxique.

L'ensemble des fonctionnalités supportées est relativement stable, donc, à priori, peu d'évolutions sont à prévoir dans le futur.

binstats : Basic statistics on binary code

Monday, 21 April 2014
|
Écrit par
Grégory Soutadé

As you may know, my work consists in developing software for embedded devices. We usually says that an embedded device is a peace of hardware with low resources (memory, CPU, flash...) taking in example phones. Nowaday, smartphones have only core software that is really embedded, the rest is sometimes more powerful than the computer I wrote this post. But, don't care, I don't work in telephony. Here (at Neotion), we do really embedded software, with chipsets clocked from 100Mhz to 200Mhz, with available RAM from 1MB to 32MB, and flash up to 8MB.

After years of developments, we can have one or more software that became too big to fit in its allocated flash partition. So, to find the guilty functions, I wrote a simple PERL script (~130 lines) that will count number of instructions for each function from objdump's output (with -ld switch) and displays statistics per function and per file (it doesn't focus on .data or .bss section). To correctly use the script, you have to compile your program with -ggdb option (to have line numbers and file paths), but you can also set optimisations (-OX).

Example with main.c

#include <stdio.h> int function1(int a, int b) { return a*b+4; } int function2(int a, int b, char* c) { printf("Result %d*%d+4 = %s\n", a, b, c); return 0; } int main(int argc, char** argv) { char buf[32]; sprintf(buf, "%d", function1(5, 4)); function2(5, 4, buf); }
> gcc main.c -ggdb -o test > objdump -ld test > test.txt > ./binstats.pl --in test.txt Total instructions 63 63 (100.00%) /home/soutade/main.c 38 main 16 function2 9 function1

There are also options to filter small files, small functions and paths that helps to focus on big ones. Have fun !

gPass v0.4

Monday, 14 April 2014
|
Écrit par
Grégory Soutadé

Logo gPass

L'intégration dans la liste des addons officiels de Firefox a été longue et difficile, et après deux versions (depuis la 0.2), gPass a enfin été accepté ! Le tag vient un peu tard puisque cela fait presque un mois qu'il n'y a plus de restrictions sur le site de Mozilla, mais il y a eu quelques petites améliorations concernant le client web. Désormais tout semble stable.

Cette intégration donne une bonne visibilité à l'addon avec une trentaine d'utilisateurs quotidiens (je ne suis pas inclus dans ces statistiques). Si cela peut paraître dérisoire, il n'en reste pas moins mon projet le plus largement déployé ! Bien sûr, c'est un peu frustrant de ne pas savoir où sont les serveurs hôtes et leurs nombres, mais c'est le but ! Ma grande satisfaction est que gPass est utilisé "partout" dans le monde.

À priori il n'y aura pas d'évolutions hors demandes particulières (pas de retours pour le moment) ou compatibilité avec Firefox, car le projet est "fini", c'est à dire qu'il fait ce qu'on lui demande (et il le fait plutôt bien).