Twitter … ou pas

Ça y est, j’ai définitivement supprimé mon compte twitter. Ça ne veut pas dire que je n’utiliserai plus twitter pour un usage précis comme donner des infos sur un projet dans lequel je suis impliqué, ou suivre des comptes particuliers (comme un RSS++), mais Twitter c’est fini pour moi en tant que réseau social. Ça va sûrement me manquer un peu dans le paysage internet (quoique pour “suivre” l’activité de ses amis, je trouve facebook plutôt propre maintenant quand on filtre les jeux et autres quizz).

C’est bien dommage, j’aimais bien le format 140 caractères, le fait de pouvoir suivre des amis et des “marques”, et l’accès depuis n’importe où et n’importe quelle application. Les trending topics, c’est une bonne idée aussi. J’ai adoré ce qu’ont fait certains avec l’api de recherche en temps réel. Et c’est tellement rassurant, quand flickr ne répond pas, d’aller sur Twitter et constater à coup de 250 tweets par minute qu’on n’est pas tout seul avec le problème. Ayant eu un compte depuis début 2007, j’ai bien aimé l’évolution de Twitter.

Voici dans le désordre (mélange de la politique “à l’aveugle” de Twitter et de ce qu’est devenue la communauté) ce qui m’a décidé à en finir.

Mon compte (vieux de 2 ans, 700+ tweets, tous légitimes) suspendu pendant 3 mois pour “activité suspicieuse” sans aucune explication.

Strictement aucune nouvelle des tickets que j’ai ouverts. Je veux bien qu’ils soient sous-staffés pour gérer au cas par cas des millions d’utilisateurs, mais rien en 3 mois ?

Les Trending Topics blindés de spammeurs (c’est bien la peine d’utiliser Twitter correctement pour se retrouver dégât collatéral, du coup).

Après ouverture d’un nouveau compte, celui-ci est filtré des parties publiques du site et de l’api (il y’a une procédure qui est censée corriger le problème, en envoyant un direct message à quelqu’un du staff, mais n’a rien donné).

Je trouve ma timeline “défigurée” par les retweets (paramétrable je sais, mais c’est dommage d’en arriver là) : c’est comme si on nous forçait à suivre des gens qui à la base ne nous interessaient pas, et le fait de les intégrer visuellement à la timeline n’arrange pas le sentiment d’agression. Les RT sont même parfois devenus des gratifications, juste pour faire mousser quelqu’un, quand aucun des followers ne sera interessé tellement c’est loin des sujets habituels — je n’en fais pas une généralité mais parfois c’est agaçant.

Les Follow Friday : des listes de pseudos à suivre, souvent sans aucune explication, ça montre bien l’absurdité du “donnant-donnant” et du lèche-bottisme ambiant. Qu’on dise une fois par semaine qu’on aime bien suivre telle personne en disant pourquoi, c’est bien. Mais quand ça prend la forme “#ff @machin @truc @chose [... jusqu'à 140]” puis à la fin de la journée “merci pour vos #ff”, ben heu … comment dire … c’était très intéressant, merci. Ce qui nous amène au point suivant.

De nos jours de plus en plus de monde est sur Twitter par intérêt. Non pas parce que, comme les premiers utilisateurs, ils pensent que c’est intéressant de s’exprimer en messages de 140 caractères, mais plutôt parce que bon, il faut être sur Twitter pour être vu. La visibilité est devenue une fin en soi, dommage. Ceux qui disaient hier que Twitter “c’est ridicule et ça ne sert à rien” collectionnent aujourd’hui les followers et y font leur autopromo. D’un côté c’est bon pour Twitter, qui pourra en faire des revenus. D’un autre côté, ça n’en fait rien de plus qu’une énorme plateforme publicitaire à toutes les échelles : de l’individu qui cherche à être “reconnu” dans son métier à l’entreprise qui en fait un canal de vente comme un autre. Avec, perdus au milieu de tout ça, ceux qui n’ont rien à vendre et qui savaient déjà acheter et “reconnaître” avant Twitter.

Bref c’est, comme dirait l’autre, not fun anymore.

Moleskine ou le sens du service

Je suis assez impressionné par la finition du moleskine qu’on vient de m’offrir. Bien pensé, solide, discret, et tout. La plus belle surprise, cependant, se trouve dans le petit carnet qui l’accompagne. On peut y lire ceci :

Le numéro d’identification de votre carnet se trouve dans la pochette à l’intérieur. Veuillez le conserver. Chaque carnet est fait à la main et a été soigneusement contrôlé pour sa qualité. Si, malgré tous nos efforts, nous n’avons pas remarqué un défaut de quelque sorte que ce soit, nous vous demandons de nous le communiquer. Visitez www.moleskine.com/quality, et envoyez une photo numérique qui montre le problème que vous avez rencontré.

Voici un exemple de service après vente moderne et non dissuasif. La quantité de formalités à accomplir pour accéder au service après vente de certains produits “bon marché” est parfois tellement ridiculement importante qu’il devient évident qu’elles ne sont que dissuasives. Et bien ici, ça n’est pas le cas semble t’il. J’imagine que c’est directement lié au fait que le carnet soit d’excellente facture — je n’ai rien trouvé comme «défaut de quelque sorte que ce soit» :) .

PYTHON + WSGI + GLIB + TWISTED F/T/W !

WSGI, avec le recul, c’était vraiment une bonne idée.

Ce week-end, après avoir vu l’application Remote d’apple sur iPhone, je me suis dit que je voulais la même chose pour contrôler la lecture de films/musique sur ma tv via mon pc. Vu que mon téléphone actuel est un iphone, la voie la moins pénible est de faire une application web.

Autre prérequis, ce serait bien de se resservir du code fomenté pendant de nombreuses heures de mon temps libre : une espèce d’explorateur de système de fichiers dédié aux vidéos, et optimisé pour utilisation avec les touches haut+bas+return. L’extraction et la persistance des métadonnées se fait via un processus helper qu’on contacte via D-BUS (comme ça si le fichier vidéo provoque un plantage, l’application GTK reste vivante, et reste toujours aussi interactive que possible).

L’application (mediabrowser est son nom) est écrite en pygtk et utilise les bindings glib+D-BUS et gstreamer pour python. Pour recevoir des réponses asynchrones sans réécrire les bindings, il s’imposait donc pour l’application web (appelons la « remote » pour être original) de tourner dans un environnement qui utilise la mainloop glib.

Ca commence à faire des prérequis assez exotiques, mais il se trouve justement que Twisted permet d’installer comme boucle d’évènements un glib2 reactor. Parfait !

Me voilà donc en train d’expérimenter l’embarcation d’un serveur web dans mon application GTK2 et/ou l’écriture d’un programme externe qui réutilise tout le code de parcours de système de fichiers, d’extraction de métadonnées, etc ! Commencer un projet avec 75% du boulot déjà faits et directement réutilisables, c’est bien commencer :)

Maintenant, phase d’expérimentation sur le framework http à embarquer. Les combinaisons testées sont :

  • Web.py (out car besoin de glib.MainLoop)
  • Twisted + web.py (sympa mais un peu limité)
  • Twisted + tout à la main (heu, sympa mais pas vraiment le temps de réinventer tout ça)
  • Twisted + dispatch via des resource.Resource Twisted (sympa mais ça a fait beaucoup de code à écrire à mon goût)
  • Twisted + cherrypy (la version retenue et actuelle)
  • Twisted + django (la version peut-être future si la version cherrypy devient difficile à maintenir avec plein de nouvelles fonctionnalités)

Et j’aurais pu en tester encore d’autres, dommage que le week-end ne dure pas 5 jours. Le tout sans modifier l’application conteneur (du tout). C’était bluffant à quel point le script Twistd (qui prend en argument un objet callable wsgi) n’a pas bougé … merci wsgi  de m’avoir fait gagner de précieuses heures de temps libres, nan vraiment, merci.

On voit que les gens derrière tout ça n’aiment pas s’agiter dans le vide : N’importe quel framework/application web adhérant à la spec wsgi (et c’est vraiment facile) peut être embarqué dans n’importe quel conteneur wsgi (et Apache en fait partie). Certes c’est loin des paillettes et des jolies couleurs de certains écosystèmes à la mode, mais c’est ça qui rend plus facile la vie d’un développeur, pas de pouvoir écrire 5.days.from_now. Et wsgi n’est finalement qu’un exemple parmi d’autres de la manière dont fonctionne la communauté Python : si on doit gaspiller de l’énergie à faire plusieurs fois la même chose, autant que ce soit réutilisable.

Retour à « Remote ». Comme le contrôle à distance fonctionnouille à peu près, les quelques heures que j’ai à y consacrer cette semaine seront sûrement dédiées au transcodage à la volée en version mobile via gstreamer (un petit épisode de HIMYM en attendant le train ? (un hotspot wifi orange et un vpn devraient suffire)).

Promis, le code de tout ça sera bientôt dispo ! (oui, ça fait bien 2 ans que je promets ça pour Doohickey mais ne désesperons pas bande de mécréants !).

Export des contacts de son téléphone Nokia

Pour le transfert des contacts du e65 vers l’iphone, j’ai du faire les manips suivantes :

  • Trouver un PC sous windows où installer Nokia PC Suite
  • Connecter le téléphone
  • Sélectionner tous les contacts et faire “exporter” pour avoir un fichier CSV
  • Aller dans son compte google/gmail, choisir l’onglet Contacts
  • Sur la droite il y’a un très seyant petit lien “importer”, qui nous amène vers un formulaire où on va pouvoir importer le fameux fichier CSV
  • Configurer son iphone via google sync, et voilà (attention, si on s’y prend mal, les contacts de l’iphone peuvent être supprimés !).

Et voilà, contacts transférés. En prime, ActiveSync permet de sauvegarder ses contacts chez google instantannément à chaque modification.

Il y’a aussi apparament moyen d’éviter l’étape de l’export CSV en utilisant google sync pour S60 (que je n’ai pas testé). Apparament cette méthode permettrait de transférer facilement l’agenda, chose non aisée avec PC Suite.