Haxe: coder une fois, déployer partout ou presque ;)

HaxeIntroduction
Il y a quelques années, avant l’arrivée de l’HTML5, il m’arrivait d’avoir besoin de faire du flash (appris sur le tard avec des collègues de classe d’informatique), mais je(ou ma société) n’avait pas de budget prévu pour Macromedia Flash (depuis racheté par Adobe), j’avais donc cherché sur internet les alternatives disponibles (comme svg) et j’étais finalement tombé sur deux projets: MSTASC et SWFMILL.
L’un permettait d’écrire des fichiers actionsScript 2 puis de les compiler en swf, et l’autre http://swfmill.org/ de compiler une scène avec des clips, fonts… en flash également.
Avec ces deux outils, on pouvait facilement faire du flash sans le logiciel sous windows/linux/mac, et gratuitement ;)
Puis un jour, sur le site de MSTASC, l’auteur annonça la migration de ce projet vers son successeur: HAXE

Haxe késako ?
Haxe est un langage de programmation opensource un peu particulier, puisque qu’il permet d’être compilé aussi bien en flash qu’en c#, javascript ou même php…
Oui vous avez bien lu, un langage qui permet aussi bien de produire des jeux applications flash, que du code serveur ou client.
Bien entendu, en fonction de la cible, certaines bibliothèques, certains objets ne seront pas disponibles: on ne va pas demander à c# de lire un clip flash ;)
Mais mis à part les spécificités de chaque cible, le reste du langage, et donc de la logique et la syntaxe reste la même ;)

Quel intérêt ?
Imaginez le cas, ou dans la même journée/semaine vous devez developper une application web php avec un peu de javascript, voir y inclure une petite appication flash pour promouvoir une application mobile Android (en c++).
Avec la même syntaxe vous allez pouvoir faire l’ensemble: vous n’avez pas besoin de vous souvenir des différentes syntaxes de chaque langage: vous pouvez passer de l’un à l’autre naturellement.
L’intérêt est donc là: un langage à apprendre pour développer tout type d’application différente.
Si les écoles d’informatique pouvaient enseigner ce langage, cela donnerait une meilleure valeur ajoutée à leurs élèves qui deviendraient de fait plus polyvalent ;)

Comment ça marche ?
Il n’y a pas de magie: vous codez en Haxe, et appelez un binaire Haxe pour compiler vers une cible :)
Plus d’informations sur les options de compilation ici: http://haxe.org/doc/compiler

Conclusion
Haxe est un langage qui gagne à être connu, c’est une autre manière de voir les langages de programmation.
Et comme dit plus haut: vous pouvez l’apprendre uniquement pour faire du flash ou une application Android/iOs

Développer des jeux web sans flash

Introduction
Il y a quelques années encore, lorsque l’on parlait jeux, il fallait lancer son Macromedia Flash (depuis racheté par Adobe)
Ensuite sont apparus des libraries et autres compilateur pour générer des fichiers swf (flash) sans le logiciel propriétaire (Mstasc, Haxe…)
Aujourd’hui, on peut développer de petits jeux 2D sans flash, grâce à l’HTML5, et pour cela, je vais vous faire découvrir quelques outils/librairies bien pratique

note: je ferais prochainement un article sur Haxe (pas le déodorant)
Mise à jour: billet publié http://blog.developpez.com/ducodeetdulibre/p12151/non-classe/haxe-coder-une-fois-deployer-partout-ou-presque

Le logiciel Construct2
Certains logiciels permettent de faire du wysiwig* à base de drag and drop et de popup de paramétrage de créer des jeux HTML5 en toute simplicité.
Construct2, édité par Scirra fait parti de ces logiciels, il permet bien plus encore: selon la licence utilisé, on peut générer des applications IOS, Windows phone, Android…
Mais ici, interessons nous à sa capacité HTML5: son interface intuitive et assez ergonomique permet facilement de créer ses premiers jeux sans avoir à mettre les mains dans le cambouis
Malheureusement, il n’est disponible que sous windows, je vous invite à le tester si vous avez windows, ou une machine virtuelle tournant sous windows ;)
Le site: https://www.scirra.com/ (regardez la vidéo de démonstration)

*WYSIWIG Why You See Is What You Get (interface qui permet de voir le rendu en temps réel)

La bibliothèque Html5Quintus
Si vous préférez/aimez coder, vous apprécierez plus des librairies HTML5 qui comble le manque de confort de cette nouvelle technologie.
En effet, lorsque vous êtes habitué à faire des jeux sous flash, vous êtes habitué à un minimum de confort: comme créer un clip, le déplacer/le modifier le rendre invisible.
Ici, en HTML5, tout est à gérer: si vous souhaitez créer un objet image et le déplacer vers la droite: il faudra le dessiner sur le canvas, puis effacer le canvas, et le redessiner à sa nouvelle position (d’ou l’utilité d’avoir autant de canvas que d’élements dynamique: un peu comme des calques)
Mais grâce au travail de nombreux développeurs, vous pouvez apprécier des librairies qui vous permettront facilement de faire des animations, de gérer les collisions, mais aussi d’appliquer des lois physiques sur vos élements.
HTML5Quintus a l’avantage de vous permettre de la tester sans l’installer sur leur site:
En effet vous pouvez modifier le code d’un modeste jeu de plateforme pour voir l’incidence sur le jeu: modifier le comportement des ennemies pour qu’ils disparaissent à votre contact, ou placer le chateau directement sur vous pour gagner à chaque fois :)
Cette librairie est très simple à utiliser et vous ravira si vous souhaitez faire de petits jeux 2D bien sympathique

Le cas Turbulenz
Turbulenz est un cas à part c’est un SDK qui utilise majoritairement WebGL et qui peut vous permettre de développer des jeux très puissants comme « Save the Day » https://turbulenz.com/games/save-the-day

Le site: http://biz.turbulenz.com/turbulenz

Conclusion
Comme vous avez pu le voir, vous avez le choix dans les armes pour utiliser votre navigateur comme plateforme de Jeux.
Les avantages sont nombreux:

  • Permettre de jouer sur votre site
  • Multiplateforme
  • Pas d’installation, on peut jouer de n’importe ou sans avoir besoin de droits particuliers
  • Plus facile à promouvoir par son coté web (un lien dans un email/sur twitter et voila)

Bien sur, il existe d’autres librairies, je vous en ai présenté ici un échantillon, mais n’hésitez pas à partager vos ressources ;)
Et vive l’HTML5 :)

La mode des smart-montre

Patient 0: le téléphone portable
La révolution a commencé par nos téléphones, qui sont passés de simples module de communication (voix/sms) à de véritables petits terminaux très puissants.
Qui eut pu croire il y a 5 ans qu’il deviendrait naturel de recharger son portable tous les 2 jours ;)

Et si ce virus contaminait nos montres.
La montre que nous connaissons depuis des années qui nous affiche l’heure voir au mieux la date, pourrait gagner lui aussi en intélligence ;)
Sony, Apple et même Microsoft s’interesse très sérieusement à la question: si Sony proposera très bientot sa deuxième version de sa smartWatch, on entend beaucoup de rumeur concernant Apple et Microsoft.

Les contraintes ne sont pas les mêmes
Mais une montre n’est pas un portable, si dans le monde de la téléphonie, le client peut accepter des écrans toujours plus grand (évolution du concept de la phablet, augmentation de l’écran de l’iphone5…)
Les contraintes ne sont pas les mêmes: il faut un écran relativement petit pour ne pas avoir l’impression d’avoir un écran sur l’avant bras.
Ensuite une montre doit être plus robuste : on se cogne souvent l’avant-bras/le poingnet contre des portes/portiques… il faut donc un écran à toute épreuve, de préférence étanche (on enlève pas sa montre pour se laver les mains)

Quel intérêt d’une montre connecté
Il peut y avoir un grand avantage a lier sa montre à son smartphone, mais encore faut-il faire le bon compromis.
Il faut se demander ce qui serait utile d’avoir comme information minimale afin de compléter son martphone et non le remplacer.
Par exemple afficher ses notifications mais de manière simple: un simple icone/un nombre (twitter/mails/sms/appels manqués…)
Il peut être intéressant également de pouvoir appeler un contact: une simple liste cliquable/sélectionnable pour composer le numéro, utiliser ensuite son kit main libre.
Personnellement, je ne pense pas que le tactile soit intéressant sur ce type d’écran très petit, mieux vaut privilégier 2-3 boutons, voir une molette (haut/bas) et un bouton de validation.
Vous n’allez pas naviguer, ni faire défiler vos photos sur votre montre :)

Paramétrer des alertes
Une autre chose qui pourrait être très utile: créer des règles de notification afin par exemple de bipper/clignoter lorsque vous recevez un email très attendu d’un contact particulier (attente d’une réponse à une validation d’article…)

L’idée serait de limiter la sortie de son smartphone de sa poche.

Et vous seriez-vous utiliser par une montre intelligente ?

Mise à jour 23 juillet:Motorola rejoint la ronde ;)

Mise à jour 07 aout: une idée de ce dont je parlais: http://www.kickstarter.com/projects/hotsmartwatch/hot-watch-complete-smart-watch-w-revolutionary-pri-0

Et si demain, l’industrie PC prenait exemple sur Android

Introduction
Qui aurait pu penser il y a 10 ans qu’un acteur allait un beau jour redistribuer les cartes d’un marché bien établi: celui de la téléphonie mobile.
Avant 2007, le marché des smartphones était un marché de niche ou quelques acteurs (QTek,Nokia,Blackberry…) se partageaient ce petit marché.
A cette époque peu de personnes avait besoin de ce type d’appareil qui permettait de consulter ses mails même en déplacement et de consulter des sites webs (si on était vraiment motivés)
En 2007, un constructeur d’ordinateur décide d’arriver sur ce marché en visant à l’époque une part de marché très modeste, cet acteur se nommait Apple, à l’époque, ils révolutionnent le monde des smartphones avec une conception du téléphone s’adressant au grand public et non aux professionnels/geek/hommes d’affaires.
Ce produit hors de prix à ses débuts (600 dollars sans subvention opérateur) repense le concept de smartphone en changeant le public visé: le grand public.
Si avant cette arrivée Mme Michu, ou son fils/neveu n’envisageait pas une seconde l’investissement dans un Nokia N80, avec l’abonnement data qui allait avec, Apple la fit changer d’avis en créant une interface et un téléphone qui rendait le smartphone accessible à tous.
Je parle ici de cette révolution du smartphone qui nous à fait passer d’un état des lieux stable : Nokia dominait le marché des téléphones, QTek/Nokia/Palm/Blackberry se partageaient le marché des smartphones/tablettes où tournait Windows Mobile/RIM OS.
Il n’était pas envisageable une seconde de voir ceci changer, et pourtant tout a changé depuis: Palm s’en est allé (non sans tenter de rester dans la course avec son Palm Pre), Windows mobile a perdu son hégémonie, un nouvel acteur challenger sur le marché des OS a fait son apparition avec Android, Microsoft s’est réveillé et s’est repris à deux fois pour proposer un OS réellement concurrent, et RIM … (on attend encore de voir…)

Un petit zoom sur Android
Revenons un peu sur le cas Android: à la base, Google propose un OS gratuit et ouvert (s’appuyant sur GNU/linux) permettant d’en voir les entrailles pour éventuellement mieux comprendre son fonctionnement voir le modifier / l’améliorer.
Tous les constructeurs auraient pu tous intégrer un Android pure, tel qu’il était fourni par google, mais l’OS à l’époque avec quelques défauts de jeunesse. Certains constructeurs eurent l’idée de développer une surcouche (plus ou moins apprécié) permettant de combler ces lacunes et également de donner une plus-value à leur téléphone.
Proposant le même type de smartphone ,pour se démarquer, ils ont investi en R&D pour proposer une identité/un confort sur leur appareil unique. Ainsi TouchWiz pour Samsung et Sense pour HTC sont devenu des OS hybride Google/Constructeur reconnaissable.
Cet ouverture d’OS a permis à Samsung de proposer avec sa gamme Galaxy un approche personnelle du smartphone (S Beam,SmartScreen…) qu’ils n’auraient pas pu envisager avec un OS fermé comme windows Phone. Car pour envisager une cohérence entre l’OS et le hardware, il faut soit développer soi-même l’OS complet ou au moins avoir accès aux sources pour les comprendre/voir les modifier, car l’utilisation d’un OS propriétaire nécessiterait que l’éditeur ai mis à disposition l’API correspondante. (ce qui peut être refusé/repoussé par l’editeur )

Et si, on faisait le parallèle avec les PC
Aujourd’hui, tout comme à l’époque précédemment cité, on a une situation « stable » qui à priori ne devrait pas changer: Microsoft domine largement le marché des pcs, on ne peut imaginer une autre situation. Si vous ne souhaitez pas utiliser Windows, soit vous achetez un mac, soit vous télécharger un GNU/Linux pour l’installer vous même. (il faut s’y connaitre un minimum en informatique pour cela)
Si l’on fait le parallèle et donc que des constructeurs utilisent un OS gratuit et surtout open source, en créant si besoin sa « surcouche » pour se démarquer ? Hp,Compaq,Sony voir Samsung (qui a déjà un historique sur le sujet) pourraient investir de la R&D pour créer une identité visuelle à partir du pingouin.
Ainsi on pourrait voir dans un Carrefour/fnac/boulanger des PCs sous Windows 8 (que certains n’apprécient pas), aux cotés d’un GNU/linux sauce Samsung ressemblant à un Windows 7 (en customisant un kde), ce qui donnerait un vrai choix au client et permettrait à un constructeur de se démarquer sur un nouveau point: le software.
Quand aujourd’hui, le client compare uniquement le hardware d’un portable (cpu/ram/hdd/taille d’ecran/connectique…) ainsi que son prix, là où finalement les constructeurs ont peu d’amplitude pour convaincre d’acheter son produit plutot qu’un autre, ici un Samsung pourrait faire une campagne de pub en disant: sur le dernier pc Samsung, vous avez tel ou tel fonctionnalité « inédite » comme ils le font actuellement avec touchWiz (S Beam/Smart screen…)
GNU/linux depuis peu remonte un peu en notoriété est fait l’objet d’un intérêt grandissant que ce soit des editeurs de jeux avec l’arrivée récente de Steam sur la plateforme, ou des constructeurs de téléphone avec l’arrivée prochaine d’ubuntu mobile.

Et si les lois francaises et décision de justice étaient respectées, ça aideraient cette idée
Si la vente liée est un vaste débat qui a fait l’objet de multiple procès, dont certains obligeant littéralement les enseignes tel que Darty à afficher le detail du prix des PCS (hardware/software séparés).
Ces lois et décisions de justice ne sont pas respéctées imposant ainsi au client l’achat d’une licence Windows 8 qu’ils le veuillent ou non, et même si il existe des procédures de remboursement de l’OS:
1. elle nécessite d’envoyer l’ordinateur pour demander la désinstallation de l’OS (en 2013),
2. le prix remboursé n’est pas cohérent entre les marques (de 40 à 100 euros selon les constructeurs)
Certaines sociétés défendant bec et ongles ce point ont déjà proposé de dissocier la vente de l’OS de celle du PC physique notamment en demandant la vente d’un « code d’activation » dissocié permettant, si acheté, d’utiliser son OS Windows pré-installé.
Aujourd’hui, malgré la difficulté à se faire rembourser son OS, certains, au courant de l’existence d’une telle procédure et non gêné de devoir envoyer leur ordinateur fraichement acquéri le font.
Imaginez que demain on vous demande si vous voulez ou non payer N euros pour Windows: combien diront non soit car possédant une licence de windows 7/Xp et ne souhaitant pas windows 8, soit souhaitant y installer un GNU/Linux

Pourquoi ne pas proposer en natif un double boot
Si, le respect d’arrêté de justice datant de 2008* ne peut pas être respecté aujourd’hui, on peut imaginer les constructeurs proposer un double boot: Windows 8 d’un coté, et de l’autre leur version de GNU/Linux modifié, avec éventuellement une solution si l’utilisateur ne souhaite pas de cet OS maison et souhaite récupérer la place sur son disque dur: une procédure simple pour formater en NTFS cette partition ;)

Qu’y gagnerait le constructeur / le client
Aujourd’hui beaucoup de client / utilisateurs d’ordinateur n’allume leur PC que pour faire du réseau social, lire ses mails, naviguer sur internet voir rédiger quelques courriers administratif.
Pour ces besoins de base, jeu mis à part la plupart pourraient se contenter d’un OS GNU/linux dont l’interface serait pensée au plus proche de ce qu’ils connaissent: windows XP/Seven.
En leur installant de base un navigateur chromium/firefox et une suite libreoffice: ils auraient les logiciels suffisant au premier allumage pour utiliser directement son achat.
Contrairement à l’achat d’un pc sous windows, où il auraient plusieurs raccourcis sur leur bureau vers des version d’évaluation d’antivirus voir de traitement de texte, et qu’il lui faudrait investir en plus pour acquerir un Microsoft Office aux environs de 150 euros :(
Le constructeur avec une surcouche/thème pourrait proposer une interface aussi confortable que possible pour séduire le consommateur: comme Samsung et HTC l’ont fait avec leur surcouche respective (vantant leurs mérites dans leur spot publicitaires)
Le client, lui, gagnerait une chose qui n’a pas de prix: le choix, il pourrait enfin choisir l’OS en fonction de ses goûts et non se voir imposer un changement de cap d’un éditeur ayant décidé à sa place d’une interface tournée vers le tactile.
Il pourrait « voter » avec son portefeuille comme il le fait depuis des années lorsqu’il achète ses produits que ce soit son smartphone ou sa voiture ;)
Pour information, un constructeur propose depuis quelques années sa version du PC simple à utiliser, il se nomme ordissimo, plus d’informations ici : http://www.ordissimo.com/
Ils ont suivi cette idée de maitriser le hardware et le software comme l’on fait certains constructeurs avec leur smartphone sous Android ;)

Conclusion
En imaginant 2 solutions différentes on peut voir ici que ce serait une bonne idée pour les constructeurs et les clients de s’intéresser à cette idée ;)
Tout le monde y gagnerait et l’on pourrait voir, pourquoi pas un jour une seconde révolution opérer cette fois dans le marché des PCs ;)

Note: dans cet article j’ai été objectif, parlant de fait (citant mes sources) prière de rester courtois et d’argumenter vos éventuels commentaires: j’ai pu voir par expérience sur ce forum des commentaires partir dans tous les sens sur ce sujet ;)

*Procès de darty de 2008, source: http://www.zdnet.fr/actualites/vente-liee-le-jugement-darty-est-une-premiere-etape-pour-les-defenseurs-du-logiciel-libre-39381953.htm

Présentation d’un service pour gérer ses commentaires : DISQUS

Lorsque l’on développe un site web, on veut souvent donner la parole aux internautes qui visitent celui-ci.
Dans le cas des blogs, podcasts… on met souvent en place un module de commentaires.

Des commentaires pourquoi faire ?
Lorsque l’on écrit des articles ou publie un podcast, notre premier but est de se faire lire par un maximum de personnes. Les commentaires permettent d’avoir un retour sur ce que l’on publie.
Ils permettent de recueillir des critiques plus ou moins constructives (erreurs, ton…) mais aussi d’avoir un point de vue différent voir des pistes d’éléments complémentaires ou à approfondir qui enrichisse l’article.

Comment mettre en place des commentaires ?
Selon que vous utilisiez un CMS/outil de blogging/service en ligne, beaucoup incluent un module de gestion de commentaire, mais vous n’utilisez pas toujours ce type de produit: vous pouvez développer vous-même votre blog/site ou utiliser un produit ne gérant pas les commentaires et leur modération

Et c’est là qu’intervient DISQUS
DISQUS est un service en ligne de gestion de commentaire: il permet en quelques clics d’installer un service de commentaires sur son site, avec plusieurs avantages:

Ses avantages pour le développeur

  1. facilité d’installation: un simple code javascript à ajouter à son site web
  2. possibilité de mettre en place une modération (tout modérer, avertir de nouveaux commentaires à modérer)
  3. identifier les auteurs de commentaires: les obligeant à se connecter pour poster (via DISQUS/facebook/twitter…)
  4. Fonctionnant en javascript, vous pouvez même l’utiliser sur des pages html ;) (sans php/mysql ou autre base de donnée)

Ses avantages pour les internautes
Ce service a plusieurs avantages pour l’utilisateur, notamment car il est utilisé sur beaucoup de sites

  1. Permet de suivre facilement ses commentaires sur les sites l’utilisant
  2. On peut s’authentifier via son compte facebook/twitter ou créer un compte sur DISQUS
  3. Son compte permet de personnaliser son avatar, le lien vers son site web…
  4. Un peu comme tweeter, on peut décider de suivre une personne, suite à un commentaire pertinant par exemple

Conclusion
Comme vous avez pu le lire, ce service est simple à installer et riche en fonctionnalité, jetez-y un coup d’oeil par curiosité il pourrait remplacer votre système de commentaire actuel ou à venir :)

Le site: http://disqus.com/

Présentation d’un podcast sur le développement: NipDev

Le podcasting est un peu le retour de la radio libre sur le net ;)

Il y a beaucoup de podcast, mais peu parle de développement ou de webdesign, je vais vous présenter ici un podcast: nipDev

Dernier né de la famille nipTech, ce podcast animé par @fXzo, @antoined et @esorals parle de nouvelle technologie web, frameworks…
Lors du premier épisode ils nous partageaient leur expériences sur les SPA (Single Page Application)
Lors du second, ils nous parlaient des API : de leur histoire à leur utilisation aujourd’hui

Bref un podcast sympatique à écouter et très instructifs ;)
Vous pouvez (c’est l’avantage des podcasts) commenter/échanger avec les animateurs et leurs auditeurs via les commentaires propulsés par DISQUS (j’écrirais un post sur ce service)

Le site: http://www.niptech.com/podcast/category/nipdev/