Devenez un Jedi du code

sw_landingpage
Pour sensibiliser les plus jeunes et notamment les filles au développement logiciel, le site Code.org propose des exercices d’apprentissage dans l’univers Star Wars ; ainsi dans les premiers niveaux il faut trouver les bonnes lignes de code qui vont permettre à BB-8 de se déplacer et de collecter les objets en métal dont il a besoin.
C’est visuellement bien réalisé et simple, je n’ai regardé que les deux premiers niveaux (sur 15) mais je vais demander à mes filles d’essayer de résoudre les les niveaux pour voir ce qu’elles en pensent.
En tout cas je pense que c’est une bonne idée et un bon début …
Plus d’informations : Code.org
 

Un hackaton des objets connectés

hackaton-objets-connectes
J’ai reçu par mail une invitation pour le hackaton des objets connectés qui va se dérouler jusqu’au 15 Février 2015 avec une démonstration d’un prototype le 15 Janvier 2015 à l’Ecole 42.
Pour ce challenge, plusieurs types d’interfaces sont disponibles pour créer des logiciels évolués :

  • des API provenant de constructeurs d’objets connectés : Pebble, Sphero, Optinvent …
  • une API de commerce et m-commerce (Paypal)
  • des API de données (Canal TP, Cityzen Data)
  • et une API de données musicales

Avec tout cela il faut concevoir un cas d’usage innovant et le mettre en oeuvre ; il faut se montrer original mais tout en restant dans le domaine du possible en pensant à une exploitation en cas réel et un déploiement d’envergure ; il ne faut pas faire de la technologie pour le plaisir de la technologie mais partir du cas d’usage.
Il y a fort à parier que la Pebble sera beaucoup utilisée car c’est un objet connecté que l’on peut avoir toujours sur soi et qui communique facilement avec son smartphone.
Un hackaton en ligne est une bonne idée cela permet à des participants de toute la France de s’inscrire mais le rendez-vous du 15 Janvier est quasiment obligatoire ce qui nécessite tout de même un déplacement à Paris.
Il est important de souligner que les auteurs des logiciels qui auront participé resteront propriétaires de leur prototype et de leur code (il faut se méfier de certains concours qui récupèrent les créations pour les exploiter ensuite …).
Participer ou ne pas participer, telle est la question …
Vous pouvez vous inscrire sur le site : Hackaton des objets connectés

Un APIDays SpeedHack pour les développeurs

APIDays-logo
Les API sont des interfaces de programmation permettant aux développeurs d’utiliser des fonctionnalités ouvertes par leurs créateurs ; ces créateurs peuvent être des sociétés (Deezer par exemple) ou des collectivités (Rennes Métropole avec ses API Open Data).
Maintenant que quasiment tout est interconnectable sur internet et que les données sont accessibles depuis le cloud, l’utilisation de ces API permet d’ajouter des fonctionnalités à ses programmes, site internet ou application mobile beaucoup plus facilement.
Maîtriser les API disponibles devient essentiel pour les développeurs pour réaliser des logiciels rapidement et efficacement ; pour permettre aux développeurs de mettre à disposition sur l’App Store des applications, Apple proposer plusieurs dizaines de milliers d’API sur iOS 8 (plus de 4000 auraient été rajoutés depuis iOS7) et Google en a ajouté plus de 5000 dans Androïd 5.
Lors des API Days qui se tiendront à Paris les 2 et 3 Décembre 2014, un SpeedHack va se dérouler pendant 3 heures dans le but de tirer le meilleur parti de 8 API (qui ne sont pas encore connues bien sûr). On était habitué au hackatons qui se déroulent entre 24 et 72 heures mais ce format de 3 H est un véritable sprint. Des équipes d’écoles d’informatique se sont bien entendues inscrites (dont l’Ecole 42) et je suis curieux de voir ce que cet examen va faire ressortir et quelles API seront utilisées.
Personnellement je trouve qu’il n’est pas facile de bloquer quelques jours pour participer à un hackaton aussi le format de 3 heures me conviendrait peut être mieux mais il n’est pas évident de réaliser un logiciel en quelques heures …
Je regarderai les compte-rendus la semaine prochaine pour voir ce qui a pu être réalisé …
Plus d’informations : API Days

Apple Watch, le premier kit de développement est disponible

apple-watch
Pour un développeur, l’arrivée d’un nouveau kit de développement c’est un peu comme la sortie du dernier jeu à la mode pour un gamer : c’est une explosion de joie et de calculs possibilité avec le cerveau qui chauffe en se creusant les méninges pour commencer à concevoir la “killer app”.
Si en plus le nouveau kit vient d’Apple et qu’il porte sur un nouveau périphérique gadget (et donc totalement indispensable) alors vous comprendrez aisément que je soie tout émoustillé …
L’Apple Watch devrait sortir au printemps 2015 et je l’attends avec impatience même si je ne suis pas encore convaincu par le design ; cette montre connectée sera disponible en 2 tailles différentes et plusieurs différentes finitions.
Le kit de développement indique 3 types de réalisations possibles :

  • des applications pures exécutées sur la montre
  • des aperçus d’application avec quelques informations
  • des notifications actives permettant de lancer des actions

Le développement d’applications pour l’Apple Watch requiert une nouvelle version du logiciel de développement d’Apple (la version 6.2) ainsi que la version bêta du prochain iOS (version 8.2) ; un compte développeur Apple est nécessaire pour les télécharger et les utiliser.
La montre et ses applications fonctionneront de pair avec un téléphone (un iPhone bien sûr) et il faudra aussi une application sur le téléphone pour communiquer avec la montre (en Bluetooth).
Difficile d’en dire plus pour le moment sans aller à l’encontre de la politique de confidentialité d’Apple mais vous pouvez être rassuré, lorsque l’Apple Watch sera disponible à la vente, il y aura déjà beaucoup d’applications disponibles sur l’App Store.
Plus d’informations : Apple 

Non, tout le code n'est pas nul !!

good_code_bad_code
Je viens de lire un article qui met en avant l’idée que tous les codes écrits par les développeurs sont aussi nul les uns que les autres …
En tant que développeur avec 18 ans d’expérience professionnelle (et cela faisait 10 ans que je codais avant de devenir professionnel) je ne peux que m’insurger contre cette affirmation gratuite et volontairement provocatrice !!!
J’ai travaillé dans des petites équipes de développement de quelques personnes mais aussi dans des grandes fabriques de logiciels pour des PABX (Lucent) ou de téléphones mobiles (Mitsubishi Electric) et, pour avoir maintenu du code de nombreuses personnes, je peux affirmer que tous les codes ne sont pas nuls et ne se valent pas !!!
Il est important de garder à l’esprit que le code doit être facilement maintenable ; il y a une image qui circulait sur Twitter concernant le code et sa maintenance, sur cette image était écrit : “Lorsque vous codez, garder toujours en tête que celui qui devra maintenir votre code est un schizophrène qui connait votre adresse !!!”  C’est un point important à garder en tête, un parmi d’autres …
Je me souviens avoir passé du temps sur l’ajout d’un élément dans un tableau d’une dizaine de valeurs sur PC et avoir perdu de temps à comprendre pourquoi je n’obtenais pas le bon résultat ; en fait le code avait était réalisé par quelqu’un de brillant qui utilisait un algorithme de tri par dichotomie et donc il faillait placer le nouvel élément au bon endroit et non pas à la fin !!! Efficace, très optimisé mais ce n’était qu”une perte de temps pour du code tournant sur PC avec un tableau qui ne compterait jamais plus de 15 éléments !!!
Ne pas oublier non plus que la factorisation à outrance peut vous faire perdre beaucoup de temps : un code n’est jamais terminé, on peut toujours l’optimiser, le factoriser, l’organiser différemment ; si vous avez le temps alors je vous conseille de passer de nouveaux tests et si vous pouvez mettre en place un système de tests de non-régression automatique alors c’est un très bon moyen de tester la robustesse de votre code et de ses évolutions (surtout si vous faites des modifications sur des lignes de code dans lesquelles vous ne vous êtes pas replongé depuis plusieurs mois).
Il n’y a pas une façon de coder mais des règles de bon sens à suivre qui dépendent fortement du langage utilisé ; il y a des règles de nommage qui facilitent aussi la vie ainsi que l’utilisation de pattern classiques ; les profs d’algorithmique pourront vous le dire, pour un même problème, il y aura autant de codes différents que d’élèves ayant répondus à l’exercice !!!
Il ne faut pas oublier que si vous lisez cet article c’est parce des personnes codent et maintiennent WordPress depuis quelques années …
Source de l’article (en anglais) : LifeHacker

Les cubes intelligents et collaboratifs Sifteo

J’ai découvert récemment les cubes Sifteo, ce sont des petits cubes “intelligents” capables d’afficher des images et des animations. La grande originalité de ces cubes est d’être équipé de détecteur de proximité des cubes entre eux, ce qui permet la création de jeux ludiques : création de phrases, passage d’animaux d’un cube à l’autre …
Quelques jeux sont disponibles sur le site du constructeur mais il n’y a pas encore de magasin de jeux que les développeurs peuvent enrichir même si il existe un SDK bien documenté et facile d’accès qui permet de réaliser ses propres applications notamment en C# et en utilisant MonoDevelop.
La disponibilité d’un kit de développement m’a convaincu d’acheter 3 cubes sur Ebay (il est maintenant possible d’en acheter en Europe via le site ThinkGeek) cela rien que pour le plaisir de créer des applications pour les cubes. J’ai même trouvé le temps de créer une application pour les cubes Sifteo qui dialogue avec la table Microsoft Surface v2 SUR40 ; je décrirai cette application dans un autre billet …
Certaines applications peuvent être paramétrées pour insérer ses propres données, il est ainsi possible de créer ses propres mots de puzzles avec le Creativity Kit.
La vidéo ci-dessous explique le principe de fonctionnement des cubes :

 
Plus d’informations (en anglais) : le site de Sifteo
[wpsr_socialbts]