D’Android à Windows Phone

Cela fait maintenant quelques années que je suis utilisateur de « smartphone ».

 

Alcatel 101 Ola (photo par Cédric C.)

 

J’ai débuté avec un HTC Desire premier du nom en 2011. Un excellent smartphone sous Android 2.2 si mes souvenirs sont bons. Malheureusement, je l’ai malencontreusement oublié sur le capot de ma voiture un soir. Bref, j’ai pu l’utiliser pendant 5 mois seulement. Les boules !

Pour le remplacer, j’avais jeté mon dévolu sur un HTC Wildfire S. Avant tout pour son petit prix vu que 5 mois auparavant j’avais payé une « blinde » pour mon Desire. La transition fut assez dure : écran plus petit, très peu de mémoire, vélocité limitée, résolution à la limite correcte mais rien à voir avec celle du Desire. Je m’en suis contenté pendant un peu plus d’un an.

Fin 2012, arrivant en fin de contrat avec mon opérateur de l’époque, je décide de reprendre un engagement 24 mois avec un smartphone. J’ai fait la grosse erreur d’acheter un BlackBerry 9300 Curve. J’avais été impressionné par le BlackBerry de mon oncle à l’époque mais j’ai vite constaté qu’il existait un fossé technologique entre la série Bold et la série Curve. « Re » les boules ! Bref, j’ai tenu 2 mois avant d’investir dans un Acer Liquid Gallant Duo E350.

Ce dernier m’a tenu 1 an et demi avant de lâchement rendre l’âme. Bon, pour être honnête, mon fils l’a un peu aidé à mourir. Cela dit, j’avoue avoir été bluffé par cet appareil. Pas cher à l’achat (pour un smartphone, j’entends), il a largement fait le boulot tout le temps où il était en vie. L’appareil était léger et solide (mais pas fiston-proof). Deplus, l’écran était de très bonne qualité.

Après 3 appareils d’entrée de gamme consécutifs, j’ai eu envie de me faire plaisir et d’investir un peu plus. Je suis donc parti à la recherche d’un appareil milieu-haut de gamme.

Android, j’en avais fait largement le tour et j’avoue que j’en avais/ai un peu marre. J’ai donc regardé du côté de la concurrence. En avril 2014, il me restait alors 2 choix : Apple et ses iPhone, ou Nokia et ses Windows Phone (Firefox OS n’était pas encore sorti et Ubuntu Touch… Hahaha).

Dans mon entourage, il y a beaucoup d’iPhone. J’ai pu pas mal « jouer » avec et j’avoue que je n’accroche pas du tout. iOS, on aime ou on n’aime pas. Personnellement, je ne suis pas convaincu. Et puis bon, l’iPhone 5 était quand même à la ramasse au niveau de la taille de l’écran par rapport à la concurrence.

J’ai donc décidé d’investir dans un Nokia Lumia 925. Je vais peut-être vous surprendre mais j’ai tout de suite été à l’aise avec ce smartphone. D’un point de vue « hardware », sans rentrer dans les détails, je dirais simplement qu’il me convient parfaitement. L’appareil photo est le meilleur que j’ai pu avoir sur un smartphone. La qualité de finition est au rendez-vous et l’écran est… Wouah ! Bref, le meilleur smartphone que j’ai pu avoir en ma possession.

D’un point de vue « software » : du bonheur ! Windows Phone 8.1 est très simple à prendre en main. Tout est intuitif et ergonomique. Microsoft a vraiment le mérite d’avoir inventé une interface originale et performante plutôt que de faire une resucée de la concurrence. Pour moi, l’interface « Phone » de Windows est à ce jour l’interface la plus ergonomique et la plus aboutie. Au niveau des apps ou de la prétendue pauvreté du MarketPlace, j’avoue que pour l’instant, j’ai toujours trouvé une app pour chacun de mes besoins. Cela dit, je ne suis pas un gros consommateur d’app. Mais j’y reviendrai dans un prochain billet.

Blog au ralenti

Comme vous pouvez le constater, depuis ma trêve hivernale, les publications sur ce blog se font très rares. Mis à part mon billet de consternation concernant l’épisode dramatique qu’a vécu Charlie Hebdo ( Note du 20/12/2016 : billet hors ligne désormais ) ce 7 janvier dernier, je n’ai rien publié.

Le fait est que cette trêve hivernale m’a fait énormément de bien. J’avais décidé de me déconnecter et je m’y suis tenu. En effet, mise à part la relève de mes flux RSS tous les 4 à 5 jours depuis mon smartphone, je n’ai pas allumé un PC de toutes mes vacances (ni surfé sur la toile d’ailleurs). Malheureusement, cette déconnexion a également eu comme conséquence de casser la dynamique d’écriture dans laquelle j’étais. Bref, va falloir que je m’y remette.

Je tenterai de relancer ma dynamique de rédaction début février. Je ne pourrai pas m’y mettre avant car, que ce soit côté pro ou perso, j’ai plein de choses IRL à faire.

A très bientôt !

Trêve hivernale

Ça y est, la fin de l’année approche à grands pas. Moment idéal pour se ressourcer, ces deux prochaines semaines vont être très calmes sur le blog. En effet, j’ai décidé de tenter des vacances « déconnectées ». Pas de publication, pas de surf, pas de suivi de flux RSS… bref, que de la vraie vie !

Je vous souhaite à toutes et à tous d’excellentes fêtes de fin d’année et, aussi commerciales soient-elles, ne vous privez pas de moments de bonheur avec vos amis et vos familles. Portez-vous bien !

A bientôt,

Juan

Mon IDE du moment : Netbeans (HTML5 & PHP)

J’ai longtemps développé avec Komodo Edit. Malheureusement, le « bridage » de la version gratuite m’a assez rapidement contraint à chercher un autre éditeur. J’aurai bien aimé investir dans une licence Komodo IDE mais la réalité économique est ce qu’elle est.

 

Illustration code source

 

Je suis donc passé à Netbeans dans sa version « HTML5 & PHP ».

 

Lire la suite…

Git – Premiers pas

Billet initialement rédigé le 15/05/2014.

Git logo

 

Dans le cadre de mon activité professionnelle, je développe une application en PHP/MySQL. Jusqu’à présent, je n’avais pas l’utilité d’un outil de versioning comme Git vu que je développais seul. Cela dit, nous sommes en plein recrutement et il va bientôt falloir que je m’habitue à ne plus être le seul développeur du projet. Du coup, j’ai décidé d’apprendre à utiliser Git. Le choix de Git est totalement arbitraire. J’ai vu qu’il en existait d’autres (SVN, Mercurial, Bazaar, etc.) mais j’ai l’impression que Git a beaucoup plus le vent en poupe actuellement.

Malheureusement, j’ai l’impression que je vais devoir abandonner mon IDE préféré, Komodo Edit, car seule la version payante Komodo IDE intègre la gestion du versioning Git. Je vais donc non seulement devoir apprendre à utiliser Git, mais en plus je vais devoir prendre en main Netbeans. Bref, un beau challenge en perspective.

 

Lire la suite…

Lancer un script PHP en ligne de commande sous Windows

Comme je le disais dans mes deux derniers billets, je travaille actuellement sur des scripts de migration de données. Le problème avec ce genre de scripts qui traitent plusieurs milliers de lignes, c’est que vous êtes vite bloqué par les délais d’exécution lorsque vous les lancez via un navigateur Web.

Vous avez alors deux possibilités :

  • Fractionner le traitement des données en fixant des plages de traitement (traitement par lots)
  • Lancer votre script directement sur le serveur en ligne de commande

Fractionner le traitement est souvent fastidieux, surtout lorsqu’on doit traiter plus de 80 000 lignes.

La solution la plus simple est donc de lancer votre script directement dans une console (Invite de commandes). Pour ce faire, ouvrez une console et rendez vous dans le répertoire contenant le fichier php.exe. Si vous utilisez WampServer, le chemin par défaut est :

C:\wamp\bin\php\php5.5.12>

 

N.B. : la version de PHP varie selon votre version de wamp

Pour lancer votre script, il vous suffit d’exécuter la commande suivante :

C:\wamp\bin\php\php5.5.12>php.exe -f c:\chemin\vers\votre\script.php

 

Et le tour est joué ! ^^

Si vous exécutez souvent des commandes PHP en ligne de commandes, vous pouvez également déclarer le chemin de votre php.exe dans vos variables d’environnement du système. Cela vous évitera de devoir vous positionner dans le répertoire de php avant de lancer vos scripts. Pour plus d’informations, n’hésitez pas à consulter la documentation PHP sur php.net : Ligne de commande PHP sous Microsoft Windows

MySQL : Autoriser/Forcer id=0 pour les PRIMARY KEY avec AUTO_INCREMENT

Dans le cadre de la migration des données d’une structure de base à une autre, j’ai été confronté à un petit problème. En effet, dans l’ancienne version de la BDD, certaines tables de paramètres ont un id démarrant à 0 au lieu de 1.

Exemple :

Table « civilite »
Id Valeur
0 Non communiqué
1 Féminin
2 Masculin

 

Or, lorsque je lance la requête :

INSERT INTO `civilite_new` (`civilite_new_id`, `civilite_new_label`) SELECT `civilite_id`, `civilite_label` FROM `civilite`;

 

MySQL me retourne l’erreur suivante :

Error Code: 1062. Duplicate entry '1' for key 'PRIMARY'

 

L’AUTO_INCREMENT prend la première ligne (Id = 0) et force l’Id à 1. Du coup, lors du traitement de la deuxième ligne, MySQL bloque car la valeur de l’Id de cette dernière est également 1. Partant de ce constat, deux solutions sont possibles :

  • ré-incrémenter toutes les tables en décalant les id (on aurait donc 1, 2, 3 à la place de 0, 1, 2) – Attention aux intégrités référentielles
  • forcer la valeur 0 du premier Id – pas très « propre » mais efficace

Dans mon cas, la première solution ne me convient pas car le code de l’application qui alimente cette base de données repose sur le principe de Id = 0 pour « Non communiqué ».

Donc, pour forcer la mise à 0 des premiers Id, il va donc falloir user du mode SQL NO_AUTO_VALUE_ON_ZERO :

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';

 

Ajoutez la ligne ci-dessus avant votre INSERT ou UPDATE.

Une fois vos requêtes exécutées, n’oubliez pas de désactiver le mode « NO_AUTO_VALUE_ON_ZERO » :

SET SQL_MODE=@OLD_SQL_MODE;

 

Et le tour est joué ! ^^

MySQL : Désactiver temporairement les contraintes référentielles

Actuellement, je travaille sur un script PHP de migration de données d’une structure de base de données à une autre. L’ancienne structure était composée de table au format MyISAM sans contraintes référentielles (vu que ce format ne gère pas la déclaration de FOREIGN KEY). La nouvelle structure, quant à elle, est composée de table au format InnoDB où les intégrités référentielles sont déclarées.

Le problème avec ces contraintes référentielles, c’est que mon script de migration bloque dès qu’une de ces contraintes n’est pas respectée. Je vous l’accorde, ce n’est pas un problème en soi puisque c’est justement le but lorsqu’on déclare les intégrités référentielles : vérifier la cohérence du contenu de la base de données.

Une fois que le script m’a renvoyé l’erreur, je le corrige et il me faut alors vider la table impactée afin de le relancer et vérifier que le problème est bien résolu. Si je tente un TRUNCATE ou un DELETE FROM sur ma table, MySQL me renvoie alors l’erreur suivante :

Error Code: 1701 Cannot truncate a table referenced in a foreign key constraint (...)

 

Bien. MySQL vérifie donc correctement les contraintes. Cependant, il faut bien que je vide ma table pour relancer mon script. Pour pallier à ce problème, il suffit donc de suspendre le contrôle des contraintes temporairement (le temps de la requête en fait) :

SET FOREIGN_KEY_CHECKS=0;

DELETE FROM bdd.table; -- ou autre(s) requête(s)

SET FOREIGN_KEY_CHECKS=1;

 

Et le tour est joué ! ^^

Dégooglisation : oui, mais en douceur !

Comme beaucoup, mon moteur de recherche préféré est Google. Comme beaucoup, je suis de plus en plus inquiet de la stratégie de la multinationale du même nom qui trace mes faits et gestes sur la toile. Bien entendu, je n’ai rien à cacher. Cela dit, ce n’est pas parce que je n’ai rien à cacher que je souhaite qu’une entité, quelle qu’elle soit, se prenne le droit de collecter mes données personnelles et d’en faire commerce. Voir pire.

 

Illustration confidentialité

 

Comme beaucoup, j’ai envie de reprendre le contrôle de mes données. Une fois cela dit, il faut tout de même se rendre à l’évidence : les produits Google sont tout de même fichtrement bien foutus. Ils sont simples d’accès, puissants et gratuits… même si c’est nous le produit. Mon but n’est pas de me dégoogliser d’un coup, mais de tout doucement migrer mes outils actuels vers des solutions plus saines. J’attaque donc une migration en douceur. Je commence avec les emails et mon moteur de recherche par défaut. Pour le blog, vous savez déjà ce qu’il en est.

 

Lire la suite…

La fin de blog-libre.org

Suite à un message de Christophe Gallaire sur le réseau social Diaspora*, j’ai appris la fermeture du blog : blog-libre.org. C’est facile à dire après coup mais je m’y attendais. Cyrille Borne, le maître des lieux, a décidé de mettre fin à l’aventure et, dans un sens, c’est tant mieux. Pourquoi ? Il y a quelques années, Cyrille expliquait qu’avoir un nom de domaine à son nom était un gage de pérennité car cela évitait de s’enfermer dans une ligne éditoriale, dans un thème. Bref, le nom de domaine à son nom, c’est la liberté. Force est de constaté qu’il avait (et a encore aujourd’hui) raison.

Ce que je préférais lire sur le blog-libre, c’est ce que certains appellent « Les aventures de Cyrille ». J’ai beaucoup aimé les textes de Cep, Christophe, Régis et les autres, mais la substantifique moelle du blog-libre restait les écrits de Cyrille.

Le jeune blog que j’ai lancé ici, et à mon nom, est le fruit d’une réflexion, d’une envie de partage initiée par, entre autres, les écrits de Cyrille. Ici, vous ne trouverez pas d’apologie du Libre. J’en parlerai sans aucun doute, mais ce ne sont pas ses écrits sur le Libre qui ont motivé l’ouverture de ce blog. Non, ici, je souhaite simplement partager. Partager sur tous les thèmes qui pourront m’intéresser.

Petite parenthèse concernant le Libre : je suis passé par une phase « libriste » avec le blog open-stream.fr (il n’existe plus aujourd’hui). Je m’en suis vite lassé car depuis quelques années, la communauté du « Libre » ou en tout cas la partie visible de l’iceberg, est devenue violente. Les « Libristes » intégristes se sont fortement affirmés et occupent aujourd’hui le devant de la scène. Ils en arrivent même à s’entre-déchirer. On se croirait presque dans un partie politique. Ils ne défendent plus des valeurs, mais des points de vue radicaux qui mènent parfois à une violence extrême. Une violence dans les propos, certes, mais une violence quand même. Il n’y a qu’à voir les « débats » engendrés par le système d’init « systemd ». Refermons cette parenthèse.

Pour revenir au blog-libre et à sa fermeture, comme je le disais, je n’en suis nullement étonné. Cyrille a pris sur lui ces dernières semaines mais malheureusement (ou heureusement selon le point de vue), une autre issue n’était sans doute pas envisageable. Le blog-libre est né de Cyrille Borne et ce dernier l’incarnait beaucoup trop. Pour que le blog-libre fonctionne, il aurait fallu que Cyrille garde son espace et que le blog-libre soit un outil supplémentaire/complémentaire. A mon humble avis.

J’espère simplement que Cyrille va relancer son nom de domaine car je le suis depuis de nombreuses années et j’ai toujours aimé sa plume, ses écrits. Je ne suis pas toujours d’accord avec lui, mais ce que j’aime chez Cyrille, c’est son honnêteté. Il écrit par passion et non pour convenir à un lectorat.

Bref, Cyrille, s’il vous plaît, revenez !

N.B. Au moment où je prépare la publication de ce billet, je vois que http://cyrille-borne.com/ est de retour. Ouf ! ^^