Peut-on être productif avec Android ?

Bonjour à tous,

Cela fait maintenant plusieurs années que j’utilise Android. Principalement sur smartphone mais aussi sur tablette. Or j’ai toujours vu mes appareils Android comme des systèmes de loisirs (vidéos, jeux, livre, BD…) mais jamais comme un outil de travail ! Enfin mis à part pour les mails et les news pour faire ma veille mais ça ne va pas plus loin.

Dernièrement je ne publie pas beaucoup sur ce blog. La raison principale est tout simplement le manque de temps. Je passe beaucoup de temps dans les transports et le reste du temps, soit je travaille, soit j’avance mes projets personnels. Et justement, parlons en de ce temps perdu dans les transports : j’ai fini par me demander si je ne pouvais pas l’optimiser d’une meilleure manière, en reprenant la rédaction des billets de ce blog par exemple ?

Allez c’est décidé je vais devenir productif lors de mes déplacements. Quoi de mieux pour rédiger un texte ? Mon ordinateur portable bien-sûr. Et quel logiciel pour le faire ? Le bloc-note… nan je déconne. Je recherchais un logiciel tiers, me permettant non seulement d’écrire mes articles mais aussi de l’associer à un site, de paramétrer les options, la date de publication… Puis de tout publier d’un clic une fois à la maison. Bref je recherchais le logiciel qui me permettrait d’avoir le moins de manipulation à faire chez moi. Soyons direct, cela existe sur Windows et sur mac mais plus sur linux. Si je dis « plus » c’est parce que des projets existent et sont disponibles dans les dépôts mais ils sont soit abandonnés soit particulièrement compliqués (en fait y en a qu’un, les autres semblent morts).

Comme souvent dans ce genre de cas, je cours chercher mon petit Dvalin à la rescousse pour lui demander de m’aider. Sa première réponse est souvent la même et s’apparente désormais à une private joke : « ben développe le toi-même » haha putain qu’il est con, allez solution numéro deux : « Sinon moi j’utilise l’application WordPress sur Android et ça fait exactement ce que tu me demandes. »

What ??? Il existe une application WordPress sur Android et strictement rien sur linux ? C’est une autre blague ? Force est de constater que non…

J’ai un temps hésité, peser le pour et le contre. Pourquoi me passer d’un véritable ordinateur portable avec clavier, prévu pour la mobilité et la productivité ? Mais j’ai trouvé (ou on m’a donné) les arguments suivants :

  • Ma tablette est encore plus mobile que mon ordinateur portable
  • Elle a une meilleure autonomie
  • Elle a une application dédiée, elle !!! :'(
  • Et quand j’en ai marre d’écrire je peux facilement passer sur une activité de loisirs, vidéos, jeux…

Allez c’est d’accord je vais essayer de rajouter un peu de productivité à ma tablette Android. Mais le peut-on vraiment ? Car finalement c’est là LA question que je veux soulever dans cette article : Android peut-il répondre à mes besoins en terme de productivité et va-t-il supplanter mon ordinateur portable ?

Je vais aller droit au but : non ou tout du moins, je ne le crois pas. Déjà parce que je ne sais pas si vous avez essayé de coder vos programmes sous Android mais bonne chance à vous… et très peu pour moi ! Ensuite je reste perplexe sur la capacité de faire des rapports complets avec un gros travail de mise en page sur Word ou un bilan comptable annuel sous Excel même sur un tablette 10 pouces sans accessoire et franchement si c’est pour emporter une valise d’accessoires avec votre appareil, prenez un ordinateur portable 😉

Mais… Ben oui y a un « mais »… je dois avouer que travailler sur tablette est loin de l’idée que je m’en faisais et que cela peut s’avérer efficace pour les petites tâches. À titre d’exemple, sachez que j’écris cet article de bonne heure, dans les transports et avec le clavier virtuel d’Android (excusez-moi du peu) et c’est plus agréable que je ne me l’étais imaginé. Mais je commence à divaguer et il est temps pour moi de conclure.

En conclusion (on est d’accord que c’est la transition de l’année ?) je ne suis pas encore convaincu que les tablettes et le système Android soient des outils de productivité complet. Je ne suis pas non plus convaincu qu’ils soient prêt à se lancer à l’assaut du monde du travail. Bon, je reconnais que c’est surtout Microsoft qui a décidé de faire du monde professionnel sa cible marketing et non Google. Ceci pouvant expliquer cela… Néanmoins j’ai quand même découvert que je pouvais aller au-delà de la simple utilisation de loisirs et que je pouvais ainsi mieux optimiser mon temps.

Et comme j’ai envie de finir sur une note d’ouverture, je voudrai faire remarquer que le monde du mobile, de la tablette, du laptop et du desktop se recouvre fréquemment mais que quoiqu’on veuille faire, l’autre le fait mieux ou plus efficacement (car mon ordinateur portable me manque quand même beaucoup). À force, on sait plus lequel utiliser et ça… ça me gave !

Likes(2)Dislikes(0)

Archos Gamepad 2

Bonjour à tous,

Il y a quelques temps maintenant, Archos sortait la version 2 de sa tablette gaming : la Gamepad. Il s’agit d’une tablette Android au design de PSP. Et comme j’ai eu la chance d’en recevoir une à Noël (2014 si ma mémoire est bonne), il était tant que j’en fasse un petit retour.

Archos Gamepad 2

Tout d’abord, sachez que je ne vais pas vous faire un test complet. En effet, si vous en voulez, plein d’autres sites en ont fait et des plus précis que je n’en ferais jamais. Non, ici je me contenterai de vous exposer mon retour utilisateur après presque 2 ans d’utilisation.

Une tablette gaming

MC4_Cover

Étant un grand et vieux joueur, il se trouve que je suis exactement la cible de ce produit. De base, la Archos Gamepad 2 est fournit avec 2 jeux Gameloft : Asphalte 8 et Modern Combat 4. Bien que certains tests ont évoqué de légers ralentissements en jeu (surtout sur Asphalte), je n’ai rien remarqué de tel et j’ai toujours eu une bonne expérience de jeu.

MC4_Screenshot

Mais tout n’est pas parfait car pour commencer, les jeux offerts ne sont pas associés au play store de Google mais uniquement inclus en dur dans la tablette. Exit donc les mises-à-jour.

Autre problème et de taille que j’ai rencontré : le manque de place ! La tablette était vendu en 8Go ou 16Go. La version 8 étant la plus produite, c’est celle dont j’ai hérité. Et 8Go pour installer des jeux Android qui pèsent facilement entre 1,2 et 1,5Go c’est peu, vraiment peu. Sachez tout de même que la tablette dispose d’un slot micro-SD d’une capacité maximale de 64Go mais qu’elle n’est pas équipé du “stockage fusionné” créé par Archos… Vraiment dommage quant on sait que les cartes SD ne permettent que le stockage (c’est possible de faire de la bidouille pour passer outre mais je n’ai pas envie de me prendre la tête à déployer des rustines, surtout pour quelque chose de disponible)

Asphalt8_Cover

Donc personnellement, cette tablette a toujours bien fonctionné pour les jeux natifs Android mais le faible espace de stockage pose un réel problème et m’aura dissuadé d’en tester plus.

Une tablette rétro-gaming

Une tablette pour jouer où l’on ne peut pas installer beaucoup de jeu… c’est ballot. Mais heureusement pour nous, les stores Android regorgent d’émulateur ! En effet, vous en trouverez allant des premières consoles de salon jusqu’aux générations 32 bits (PlayStation, Nintendo 64…) en passant par des consoles portables plus récentes comme la PSP ou la Nintendo DS. Il existe même Dolphin, un émulateur GameCube/Wii mais là il faut que la configuration matérielle suive !

Archos Gamezone

Gros avantage des émulateurs : ils ne font que 10-15mo et s’installent sur la mémoire interne tandis que les ROM se mettent sur la SD. Et tout d’un coup, voilà que nous disposons d’un espace de stockage de 64Go pour nos jeux et d’un catalogue vidéo-ludique prodigieusement monstrueux ! Mais comme je suis sadique, la liste de mes émulateurs fera l’objet d’un autre article (plus court celui-là)

Une tablette… classique

L’autre force que je trouve à ce genre de produit, c’est qu’il s’agit également d’une tablette tactile tout ce qu’il y a de plus normal. C’est-à-dire qu’en plus des jeux, elle peut servir pour tout le reste : vidéos, ebook, BD, comics, mangas, mail… Tout je vous dis !

C’est bien simple, au-delà des jeux, je peux regarder mes séries ou lire des romans, des comics… pendant mes voyages en train. Tandis que le soir, je peux regarder Twitch, consulter mes mails ou écrire un court article WordPress.

En conclusion

Après plus de 2 ans d’utilisation, je peux dire sans hésitation que cet Archos Gamepad 2 est un très bon produit. Certes, il n’est pas exempt de défaut et certains peuvent même être rédhibitoire. Mais malgré ça, il a sût trouver une place de choix comme mon principal appareil nomade de loisirs. Pourquoi de loisirs ? Parce que jusqu’à présent, je n’ai pas trouvé qu’Android soit très adapté à la productivité.

Likes(0)Dislikes(0)

Architecture micro-services

Bonjour,

Comme je vous disais dans l’article sur Hateoas, je vais maintenant vous parler de l’architecture micro-services. Nous verrons les points communs et les différences avec les autres types d’architecture.

Les points communs

L’architecture micro-service se base sur MVC (pour Model View Controller ou en français : Modèle Vue Contrôleur).
Sur ce point, pas de révolution, votre application aura toujours une partie pour l’accès aux données (Modèle), une partie qui sera le point d’entrée de votre application (Contrôleur) et la partie pages web (Vue).

Comme toute architecture, elle n’est pas liée à un langage particulier mais représente une façon de faire applicable à tout type de langage (sauf exception).

Les différences

Première différence, le contrôleur n’est pas un contrôleur web standard mais le plus souvent un contrôleur REST (basé sur les webservices de type REST).
Ca permet de renvoyer des pages html entières ou directement des flux json à la vue.

Deuxième différence, et la plus importante à mon avis, la responsabilité des contrôleurs.
Chaque contrôleur doit avoir une et une seule responsabilité. C’est-à-dire, gérer un seul type d’objet que ce soit pour la création, modification, affichage ou suppression. Et chaque fonction du contrôleur ne doit faire qu’une seule chose (l’ajout par exemple).

Si lorsque vous ajoutez un nouveau produit, vous souhaitez avoir la liste mise à jour, vous devrez faire deux appels au serveur. Le premier appel permettra l’ajout du nouveau produit et lorsque le retour est « Création OK », alors vous faites le deuxième appel au serveur qui lui servira à renvoyer la liste de tous les produits.
Si vous avez lu l’article précédent sur Hateoas, vous voyez l’intérêt de coupler ces deux notions. Ainsi le niveau de maturité 3 que représente Hateoas vous permettra de communiquer plus en détail avec le serveur et ainsi pouvoir découper vos actions de façon minimaliste.

Souvent avec les micro-services, les gens ne savent pas bien découper le travail et mélange les différentes actions dans une même fonction d’un même contrôleur. L’inconvénient est que la maintenance et les évolutions seront plus chères car plus compliquées.
En découpant de façon minimaliste la responsabilité d’une fonction (ce qu’elle doit faire), vous diminuez sa complexité et donc le cout de sa maintenance.
Imaginons que vous avez une fonction qui renvoie tous les produits et les sous-catégories, car vous n’avez pas respecté les micro-services. Maintenant il faut que vous ne renvoyez plus les sous-catégories car le client ne les veux plus dans cette page. Vous devez modifier plusieurs parties de votre fonction, ce qui augmente le risque de régression et d’impacts sur d’autres pages.
Dans le cas des micro-services, vous n’avez juste qu’à supprimer l’appel aux sous-catégories dans le javascript. Le risque de régression étant quasiment nul et la complexité pareil (sauf si votre JS est mal codé 🙂 ).

Troisième point, votre architecture coté serveur ressemble à vos urls.
C’est-à-dire que si vous avez store/product/ dans votre url, vos packages cotés serveurs auront la même architecture.
Cette logique est identique coté javascript si vous utilisez un framework du type angular.
L’avantage est que même sans connaitre l’architecture du projet, vous pouvez vous y retrouver facilement coté serveur si on vous a donné l’url de la page à modifier ou inversement si vous savez où est le contrôleur.

Voilà, c’était une petite présentation sur l’architecture micro-services, qui j’espère vous donnera l’envie d’en savoir plus et pourquoi pas de la mettre en place sur vos nouveaux projets (modifier l’architecture d’un projet déjà existant est souvent long, compliqué et couteux).

Likes(0)Dislikes(0)

Hateoas

Bonjour,

Aujourd’hui, je veux vous parler du niveau de maturité de maturité de communication de webservices rest : hateoas.
Cet article fera volontairement des raccourcis et sera vulgarisé.

Tout d’abord, il faut faire un petit résumé rapide sur les webservices.

Les webservices

L’objectif d’un webservice est de permettre la communication entre deux machines sans qu’elles ne sachent quel langage de programmation chacune utilise.
Par exemple, un serveur java peut communiquer avec un serveur php sans que ça pose de problème. Le serveur qui met à disposition le webservice va dire ce qu’il attend en entrée comme format (XML pour la norme SOAP par exemple), les informations qui devront être obligatoirement renseignées, celles qui sont facultatives, etc. En sortie, il renverra un fichier, qui lui aussi qui sera normé.

Il existe deux normes de webservice : SOAP (basé sur les fichiers XML) et REST (basé sur le protocole HTTP).
L’avantage du REST est qu’il peut directement appelé par un navigateur web.

Les développeurs se sont dit : « hé, si on peut appeler les webservices REST depuis un navigateur, il y a moyen de développer une application web qui serait basé que sur des webservices REST. Et non plus des controleurs web d’un coté et webservices de l’autre. »
Et oui, avant on devait faire un controleur web qui renvoyait, par exemple, une page d’affichage de données et si un serveur distant devait également avoir accès à ces mêmes données, on devait faire un webservice qui lui renvoyait. Maintenant, on peut faire un seul et même point d’entrée : le webservice REST qui pourra renvoyer les données aussi bien au navigateur qu’à un autre serveur.

Oui, mais on doit pouvoir donner des informations sur les échanges entre les machines.
Si mon navigateur envoie des données qui ne sont pas attendues par le webservice, ce dernier doit pouvoir lui dire qu’il y a eu un problème.

C’est là qu’intervient les différents niveaux de maturité des webservices.

Les maturités des API webservices

Niveau 0

Dans ce niveau, le plus bas, tout se passe en POST (signifie normalement qu’on envoie des données au serveur) sur une même url et le serveur répondra toujours 200 (code pour OK), que la requête se soit bien passée ou non.

Le problème est que pour afficher des données, le POST ne sert à rien; et le code 200 renvoyé, quelque soit le vrai état de la requête coté serveur, n’est pas satisfaisant car ça peut cacher une erreur.

Niveau 1

Avec ce niveau, on appelle toujours le serveur en POST, mais là on va enrichir l’url en lui disant par exemple quel objet on cherche à avoir.
Ex, si on veut récupérer l’utilisateur 42, l’url sera du type :
www.monsupersite.fr/user/42
Si on cherche à avoir le produit 12, l’url sera du type :
www.monsupersite.fr/product/12
Si on veut avoir tous les utilisateurs, l’url sera du type :
www.monsupersite.fr/users

Ainsi, on voit que l’url commence à « dessiner » ce qu’on fait réellement sur le site.

Niveau 2

Là, en plus d’avoir des url différentes suivant ce qu’on fait, on demande au serveur des données d’affichage avec le mot GET, l’ajout d’un nouvel élément avec le code PUT, la modification avec POST et la suppression avec DELETE.
Le serveur en retour répondra avec un code différencié du style : 201 pour dire que la création s’est bien passée, 404 pour dire que la ressource n’a pas été trouvée, etc.

Niveau 3 : hateoas

L’objectif de ce niveau est d’en plus d’avoir un échange verbeux entre les machines (niveau 2, pour rappel), permet aussi d’envoyer des liens vers d’autres webservices liés à l’action qu’on vient de faire.
Par exemple, si on veut récupérer les informations d’un utilisateur, on fera :
Appel en GET vers l’url : www.monsupersite.fr/user/42
Le serveur renvoie 200 et en plus des liens vers le webservice qui liste les produits achetés par ce même utilisateur.
Le retour est du style :

[
{
"user" : {
"id" : 42,
"name" : "toto",
"email" : "toto@monsupersite.fr",
"links" : [
{
"rel" : "self",
"href" : "http://www.monsupersite.fr/user/42"
}
],
"products" : {
"links" : [
{
"rel" : "self",
"href" : "http://www.monsupersite.fr/user/42/products"
}
]
}
}
}
]

Ainsi, en plus d’avoir les informations liées à l’utilisateur directement, nous avons aussi le lien vers le webservice qui permettra de récupérer les produits achetés par ce même utilisateur.

Il peut bien sur avoir plus d’une sous partie dans le résultat renvoyé par le serveur.

Comme il s’agit d’un degré de maturité proposé par une personne, Leonard Richardson, il ne s’agit pas d’un standard. Donc chacun peut faire ce qu’il veut.
A mon sens, l’intérêt de Hateoas est d’autant plus important si on l’utilise dans le cadre d’une application basée sur l’architecture microservices (qui sera expliqué dans le prochain article).

Uber vs taxis, vainqueur : Google

Cet article est le deuxième sur le changement que les robots vont amener dans le monde du travail.

Depuis quelque temps, l’application Uber défraie la chronique.
Pour ceux qui ne connaissent pas, elle permet à des particuliers de faire en gros le travail des taxis, avec aucun contrat de travail et une obligation d’avoir un véhicule qui rentre dans la liste qu’Uber accepte.
Bizarrement les taxis n’ont pas trop apprécié que leurs plates bandes soient envahies par Uber. S’en est suivi des grèves et des échauffourées entre les deux camps.

Qui croyiez vous va gagner ce bras de fer ? Google !
Pourquoi me direz vous. Tout simplement, l’image des taxis est entachée depuis pas mal de temps et avec l’avènement, très prochain, des voitures totalement autonomes de google, Uber et les taxis seront remplacés par une flotte de taxis autonomes de créés par google.
Reste à savoir quand ce genre de véhicules existeront et auront le droit de circuler sur nos routes.
Certains d’entres vous se diront que les voitures by googles existent déjà. En fait, oui et non. Actuellement, les voitures sont autonomes mais nécessitent la présence d’un humain derrière un volant au cas où. Vu les progrès de Google en la matière, je penses que d’ici 5ans max, les humains ne seront plus indispensables.

Certains entrepreneurs y verront un moyen de gagner de l’argent avec un minimum de coût humain. Il faudra du personnel pour nettoyer les voitures et pour les entretenir mais pas beaucoup plus. Ils pourront alors se passer du plus cher : une personne par voiture.
Ajouté à cela, la curiosité des gens qui va faire qu’ils voudront prendre ce genre de taxi plutôt qu’un traditionnel, vous avez la fin programmée des taxis et d’Uber.

Honnêtement, la précarité d’apporte Uber aux personnes avec lesquels ils travaillent, fait que je serais content le jour où ils disparaîtront. Mais je ne suis pas que ça soit pour le bien commun ce jour là.

Likes(0)Dislikes(0)