Blog - Sebastien Martinihttp://seb.dbzteam.org/0d/Sat, 12 May 2012 11:57:10 GMTPyRSS2Gen-1.0.0http://blogs.law.harvard.edu/tech/rssMise en pause automatique des notifications dans FreeboxCalls http://seb.dbzteam.org/0d/2012/05/10/mise_en_pause_des_notifications.html<p>Comme <a href="/0d/2012/04/20/presentation_de_freeboxcalls.html">mentionné précédemment</a> pour chaque appel manqué sur la Freebox <a href="/freeboxcalls">FreeboxCalls</a> est capable d'envoyer une notification directement sur le mobile de l'utilisateur pour le prévenir. Quand les notifications sont activées, une option complémentaire de mise en pause automatique peut aussi être utilisée. Tout d'abord il faut préciser que cette option dépend de la présence du GPS et ne peut donc pas être proposée sur tous les appareils, de plus certains anciens appareils tels le iPhone 3GS ne peuvent pas la supporter. Par défaut l'option est désactivée et les notifications sont actives.</p> <p><img alt="option de suspension des notifications" src="/0d/f/loc/loc2.png" /></p> <p>Pour les appareils disposant de cette fonctionnalité l'idée est d'offrir un moyen pour suspendre ou reprendre automatiquement la notification des appels manqués en fonction de sa géolocalisation. Ainsi lorsqu'on se trouve chez soi à côté de sa Freebox il y a peu d'intérêt à recevoir une notification pour un appel qu'on est capable d'entendre par soi-même. Dans ce cas il pourrait être pratique de pouvoir suspendre temporairement les notifications (voir prise d'écran de gauche ci-dessous). Puis quelles soient automatiquement réactivées lorsqu'on quitte son domicile (voir prise d'écran de droite ci-dessous). C'est justement ce que propose FreeboxCalls.</p> <div style="text-align: center;"> <img src="/0d/f/loc/loc1.png" alt="suspension des notifications" style="display: inline; margin: 10px;" /> <img src="/0d/f/loc/loc4.png" alt="désactivation de la suspension des notifications" style="display: inline; margin: 10px;" /> </div> <p>Pour configurer cette option il suffit de se mettre le plus près possible de sa Freebox Server puis de l'activer. Votre position sera alors déterminée puis enregistrée et deviendra le point de référence pour vos déplacements futurs pour décider de la mise en pause ou non des notifications.</p> <p>Attention toutefois, cette option utilise une technologie de géolocalisation fournie par iOS qui peut parfois malheureusement se révéler assez imprécise. De temps en temps, il pourra arriver que lorsque vous quittiez votre domicile la suspension des notifications ne soit pas de suite désactivée. iOS tolère sans doute ces imprécisions afin de ne pas trop impacter la batterie du mobile en activant trop souvent le GPS.</p> <p>Une dernière petite astuce est la présence d'un "point" dans le menu principal des réglages pour symboliser le fait que les notifications sont actuellement suspendues. A l'inverse quand le point est absent, les notifications sont actives.</p> <p><img alt="statut de la suspension des notifications" src="/0d/f/loc/loc3.png" /></p>Thu, 10 May 2012 00:00:00 GMTPrésentation de FreeboxCalls http://seb.dbzteam.org/0d/2012/04/20/presentation_de_freeboxcalls.html<p>FreeboxCalls est une nouvelle application iOS dès à présent <a href="http://itunes.apple.com/fr/app/appels-freebox/id507900175?mt=8">disponible sur l'App Store sous le nom <em>Appels Freebox</em></a> pour relever et gérer les appels reçus sur les Freebox Révolution.</p> <div style="text-align: center;"> <img src="/0d/f/fc/iphone_main.png" alt="Interface iPhone" style="display: inline; margin: 10px;" /> <img src="/0d/f/fc/ipad_main.png" alt="Interface iPad" style="display: inline; margin: 10px;" /> </div> <h2>Motivation</h2> <p>Le principe de FreeboxCalls est sans doute familier aux possesseurs de <a href="http://seb.dbzteam.org/freeboxsync2/">FreeboxSync</a>, en effet FreeboxSync possède une fonctionnalité semblable et ce n'est pas un hasard si FreeboxCalls reprend et étend cette fonctionnalité. En utilisant cette fonctionnalité dans FreeboxSync je me suis rendu compte qu'elle m'était très utile, je m'en servais énormément, mais j'ai aussi rapidement observé qu'il y avait plusieurs limitations et par conséquent qu'il y avait matière à faire beaucoup mieux. En particulier, je voulais pouvoir consulter les messages du répondeur de Free et être notifié des appels manqués sur la Freebox même quand l'application est inactive. Afin de ne pas surcharger FreeboxSync j'ai décidé qu'une application séparée était la meilleure voie à suivre, voilà comment FreeboxCalls est née.</p> <h2>Principe général</h2> <p>Le principe de FreeboxCalls est très simple, l'application va chercher la liste des appels reçus sur la Freebox et les présente par ordre chronologique en les associant aux contacts de votre carnet d'adresse. Il est possible de très facilement rappeler, texter ou mailer un correspondant. Quand le numéro n'est associé à aucun contact l'application propose d'effectuer une recherche inversée du numéro de téléphone sur internet. Les appels peuvent être effacés ou mis en favoris et apparaissent dans ce cas dans une section distincte. Les appels sont actuellement conservés 2 mois avant d'être effacés (cette limitation va toutefois être étendue dans une prochaine mise à jour). Les appels mis en favoris sont eux conservés indéfiniment. Les messages du répondeur Free sont automatiquement associés à leur appel correspondant et il est facile de les lire en streaming directement depuis l'application.</p> <h2>Notification des appels manqués</h2> <p>La problématique est la suivante : pour déterminer si la Freebox a reçue un nouvel appel il faut lancer l'application, donc ce n'est pas du tout pratique. Ce problème est résolu dans FreeboxCalls en proposant la possibilité de recevoir en <em>notification push</em> chaque nouvel appel reçu en absence sur sa Freebox. Chaque notification s'accompagne d'un message comprenant le numéro et l'heure de l'appel manqué, ce message est généralement présenté sur l'écran d'accueil lorsque l'appareil est en veille (voir prise d'écran ci-dessous). Il est très facile de le lire puis au besoin d'aller dans FreeboxCalls pour plus de détails. C'est sans doute la plus grosse fonctionnalité de FreeboxCalls et c'est aussi celle qui m'a demandée le plus d'efforts à développer.</p> <p><img alt="Notifications push" src="/0d/f/fc/push.png" /></p> <h3>Notification Gtalk</h3> <p>Pour tous ceux qui comme moi passent leurs journées devant leur ordinateur avec un client connecté en permanence à leur compte Gtalk il est également possible d'être notifié des appels manqués sur la Freebox par un petit message automatique envoyé par <em>freeboxcalls@gmail.com</em>. Il faut au préalable ajouter cette adresse dans sa liste de contacts.</p> <p><img alt="Notifications Gtalk" src="/0d/f/fc/gtalk.png" /></p> <h2>Intégration iCloud</h2> <p>FreeboxCalls est conçue pour bien s'intégrer avec iCloud et peut être utilisée simultanément sur plusieurs appareils. La plupart des réglages à l'exception des mots de passes sont synchronisés sur iCloud. Le dernier appel consulté dans FreeboxCalls est également synchronisé pour pouvoir déterminer combien il y a de nouveaux appels sans comptabiliser les appels déjà visualisés sur un autre appareil. En revanche, les appels favoris et les appels effacés ne sont actuellement pas synchronisés, peut-être dans une future version.</p> <h2>Astuces</h2> <p>Voici deux petites astuces pas forcément évidentes au premier coup d'oeil qui peuvent s'avérer utiles :</p> <ul> <li>La couleur de la police de caractère de la date d'un appel indique si l'appel a été répondu ou non, rouge pour un appel non-répondu et noir pour un appel répondu.</li> <li>Si vous maintenez le doigt appuyé sur un appel un petit pop-up va apparaître et vous pourrez copier les informations textuelles de cet appel (voir prise d'écran ci-dessous).</li> </ul> <p><img alt="Copie des informations d'un appel" src="/0d/f/fc/copy.png" /></p> <h2>Je possède déjà FreeboxSync</h2> <p>Cette section est consacrée aux utilisateurs de FreeboxSync pour les aider à décider de l'utilité de migrer vers FreeboxCalls selon leur type d'usage et de besoin :</p> <ul> <li>Vous utilisez la fonctionnalité de FreeboxSync épisodiquement : vous n'avez probablement pas d'intérêt à migrer vers FreeboxCalls.</li> <li>Vous utilisez souvent la fonctionnalité de FreeboxSync mais ne comptez pas utiliser la fonctionnalité de notification dans FreeboxCalls : dans ce cas même si l'ergonomie de FreeboxCalls est grandement améliorée par rapport à FreeboxSync j'aurai tendance à dire que FreeboxSync peut vous suffire à moins que vous vouliez absolument pouvoir écouter les messages du répondeur ou accéder à vos anciens appels reçus.</li> <li>Vous êtes un grand utilisateur de cette fonctionnalité dans FreeboxSync, vous désirez une meilleure ergonomie de l'interface, pouvoir écouter facilement les messages du répondeur, pouvoir mettre des appels en favoris, être prévenu lors d'appels en absence : dans ce cas je pense qu'il n'y a pas photo, FreeboxCalls est faite pour vous!</li> </ul> <h2>Liens</h2> <ul> <li>Vous pouvez retrouver FreeboxCalls sur l'<a href="http://itunes.apple.com/fr/app/appels-freebox/id507900175?mt=8">Appstore</a> ou consulter sa <a href="/freeboxcalls/">page d'aide</a> pour résoudre les difficultés de configuration éventuels.</li> <li>Présentation de la fonctionnalité de <a href="/0d/2012/05/10/mise_en_pause_des_notifications.html">"Mise en pause automatique des notifications dans FreeboxCalls"</a>.</li> </ul>Fri, 20 Apr 2012 00:00:00 GMTPost-bug-mortem http://seb.dbzteam.org/0d/2012/04/12/post-bug-mortem.html<p>Cette entrée est plus orientée sur l'aspect développement applicatif aussi n'hésitez pas à la sauter si vous n'êtes pas intéréssé.</p> <p>Suite à la débacle (voir anciennes entrées) des jours précédents et en tant que développeur j'en tire plusieurs enseignements :</p> <ul> <li>On oublie souvent combien certains codes sont risqués. Que çà soit du code de parsage qui se base sur une trame de page spécifique ou du code anti-piratage qui se base sur des spécificités d'un bundle, dans les deux cas cela demeure des codes fragiles. Leur validité est dépendante d'éléments externes (non-déterministes). La difficulté est de toujours rester en alerte sur ces codes.</li> <li>Jusqu'à présent j'ai choisi de proposer une application payante qui offrait toutes les options une fois achetée. Le code anti-piratage était destiné à protéger ce travail. Devant les difficultés et les risques de ce code je me demande quel serait le moyen de m'en passer à l'avenir dans mes futures applications? Une possibilité que j'ai rejetté jusqu'à présent serait de faire une application gratuite puis de faire payer certaines fonctionnalités à l'intérieur de l'application elle-même. Il me semble qu'il est plus facile de vérifier l'intégrité des achats dans ce système là . De plus, le fait de proposer initialement l'application gratuite pourrait contribuer à déminer le terrain.</li> <li>La procédure de validation accélérée proposée par Apple est efficace il a fallu moins de 30 heures pour faire accepter la mise à jour corrective.</li> <li>Le message d'erreur (à vocation humoristique) affiché quand l'application pense qu'elle a été piratée était destiné aux personnes n'ayant pas acheté l'application et non à être vu comme en cas de bug par les utilisateurs légitimes. Je comprends les personnes qui ont trouvé ce message offensant, il ne leur était pas destiné, mais ils ne pouvaient pas le savoir. La solution dans ce cas est de mettre un message générique et envisagé qu'il puisse être lu par tout le monde.</li> </ul>Thu, 12 Apr 2012 00:00:00 GMTMalédiction des bugs http://seb.dbzteam.org/0d/2012/04/10/malediction.html<p>C'est le drame. En raison d'un bug dans mon code de protection de FreeboxSync contre les versions hackées de FreeboxSync, FreeboxSync 2.4.2 est incapable de s'exécuter correctement même pour les versions de FreeboxSync achetées légalement sur l'appstore. J'utilise ce code depuis 1 an et je n'avais jamais eu aucun problème, il y'a dû y avoir une modification récente dans la manière dont les packages sont assemblés. Quoi qu'il en soit si vous avez FreeboxSync 2.4.1 ne mettez surtout pas à jour vers la version 2.4.2 attendez la version 2.4.3. Dans les autres cas il faut attendre la mise à jour 2.4.3. J'ai essayé de demander une procédure de distribution accélérée dans l'appstore, mais rien n'est garanti, surtout que dans ce cas c'est complétement de ma faute!</p> <p><strong>Màj 12/4/2012</strong> : FreeboxSync 2.4.3 est disponible en mise à jour dans l'appstore et corrige le problème introduit avant-hier. Cette mise à jour est la bonne.</p>Tue, 10 Apr 2012 00:00:00 GMTDeux versions correctives de FreeboxSync en moins d'une semaine http://seb.dbzteam.org/0d/2012/03/28/corrections_dans_freeboxsync.html<p><strong>TL;DR</strong> C'est une semaine chargée en corrections pour FreeboxSync!</p> <h2>Limitation erronée des vitesses de téléchargement</h2> <p>La première correction concerne un bug introduit dans la version courante (2.4) de FreeboxSync. <a href="http://seb.dbzteam.org/freeboxsync2/bug_2_4.html">Ce bug limite les vitesses de téléchargements</a> des fichiers dans l'explorateur. Mon idée initiale était d'assouplir la limitation de la vitesse des téléchargements effectués en 3G, mais en effectuant cette modification au lieu d'imposer la nouvelle limite uniquement aux interfaces 3G je l'ai également appliquée par erreur aux interfaces Wifi. L'ironie de l'histoire c'est qu'en voulant améliorer les vitesses de téléchargements je les ai au contraire réduites. Ce bug sera corrigé dans la version 2.4.1 de FreeboxSync.</p> <h2>Impossibilité de consulter les appels reçus</h2> <p>La seconde correction est consécutive à la publication aujourd'hui de la <a href="http://dev.freebox.fr/blog/?p=961">nouvelle version 1.1.5</a> du firmware de la Freebox Server. Ce nouveau firmware introduit bien sûr la correction du bug de l'horloge pour le passage à l'heure d'été mais introduit également des modifications dans la gestion de l'affichage des appels reçus sur la Freebox. Ces modifications ont <em>cassé</em> le parseur de FreeboxSync qui n'est plus actuellement capable de lister les appels reçus. La version 2.4.2 de FreeboxSync non seulement corrigera cette situation mais conservera la compatibilité avec les Freebox qui n'ont pas encore été redémarrées et ont conservé l'ancien firmware.</p> <h2>Calendrier</h2> <p>Pourquoi ne pas grouper ces deux corrections en une seule mise à jour? Principalement parce que je considère le premier problème comme beaucoup plus important et que sa mise à jour est déjà soumise à Apple et devrait être approuvée d'ici la fin de la semaine si tout se passe bien. Pour corriger le second bug de suite il aurait fallu resoumettre une nouvelle version à Apple et certainement attendre jusqu'au milieu de la semaine prochaine. La correction de la gestion des appels viendra donc un peu plus tard.</p> <p><strong>Màj 31/03/2012</strong> : la mise à jour 2.4.1 de FreeboxSync n'a toujours pas été approuvée par Apple. Il semble donc qu'il faille patienter encore un peu, ce ne sera pas pour cette semaine.</p> <p><strong>Màj 31/03/2012</strong> : contre toute attente Apple vient d'approuver FreeboxSync 2.4.1 (la version qui corrige le bug de limitation de vitesse en Wifi). Cette version devrait donc être disponible dès à présent dans l'appstore. Je viens également de soumettre la version 2.4.2 à Apple (la version qui corrige le problème des appels reçus avec le nouveau firmware de la Freebox). Si le passé est une indication du futur, je crains qu'il faille patienter jusqu'à samedi prochain pour espérer voir cette version dans l'appstore. Dans tous les cas je continue à utiliser ce blog pour vous tenir informé.</p> <p><strong>Màj 9/4/2012</strong> : FreeboxSync 2.4.2 n'a toujours pas été validée par Apple.</p> <p><strong>Màj 10/4/2012</strong> : j'ai des difficultés inattendues pour faire approuver FreeboxSync 2.4.2 dans l'appstore (je préfére pas m'étendre sur le sujet pour le moment tant que ce n'est pas résolu)... En outre le planning habituel ne s'applique plus et je suis incapable de dire quand la mise à jour sera disponible dans l'appstore, je fais mon possible.</p> <p><strong>Màj 10/4/2012</strong> : finalement FreeboxSync 2.4.2 a été approuvée est devrait à présent être disponible en mise à jour. Ces deux bugs doivent donc être désormais corrigés.</p>Wed, 28 Mar 2012 00:00:00 GMTExplication des contraintes réseau dans FreeboxSync http://seb.dbzteam.org/0d/2011/11/19/freeboxsync_contraintes_reseau.html<p>Ce n'est pas toujours évident dans <a href="http://itunes.apple.com/fr/app/freeboxsync/id428139672?mt=8">FreeboxSync</a> de déterminer quelle fonctionnalité est disponible en fonction de sa connexion réseau courante. Dans le meilleur des mondes tout fonctionnerait tout le temps… Cependant dans le monde réel diverses limitations s'imposent, malgré tout ce tableau devrait clarifier (un peu) la situation.</p> <table> <thead> <tr> <th>Fonctionnalité</th> <th>Accès Wifi sur la Freebox</th> <th>Accès Wifi distant</th> <th>Accès 3G</th> </tr> </thead> <tbody> <tr> <td><strong>Synchronisation photos/vidéos</strong></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-orange">Non</span></td> <td><span class="hl-orange">Non</span></td> </tr> <tr> <td><strong>Envoi de fichier</strong></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-orange">Non</span></td> <td><span class="hl-orange">Non</span></td> </tr> <tr> <td><strong>Explorateur</strong></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-green">Oui<sup id="fnref:Explorateur3G"><a href="#fn:Explorateur3G" rel="footnote">1</a></sup></span></td> </tr> <tr> <td><strong>Appels reçus</strong></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-green">Oui</span></td> <td><span class="hl-green">Oui</span></td> </tr> </tbody> </table> <h4>Notes :</h4> <div class="footnote"> <hr /> <ol> <li id="fn:Explorateur3G"> <p>(Màj 4/4/2012) jusqu'à la version 2.4.0 (inclue) de FreeboxSync la vitesse de téléchargement en 3G était limitée. Depuis FreeboxSync 2.4.1 il n'y a plus aucune restriction.&#160;<a href="#fnref:Explorateur3G" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p> </li> </ol> </div>Sat, 19 Nov 2011 00:00:00 GMTStreaming de fichiers audio dans FreeboxSync http://seb.dbzteam.org/0d/2011/11/10/freeboxsync_streaming.html<p><a href="http://itunes.apple.com/fr/app/freeboxsync/id428139672?mt=8">FreeboxSync 2.1</a> introduit la possibilité d'écouter les fichiers mp3<sup id="fnref:formats"><a href="#fn:formats" rel="footnote">1</a></sup> en streaming. Plus besoin d'attendre la fin du téléchargement dans l'explorateur pour débuter l'écoute du morceau. L'option correspondante dans les réglages est par défaut activée.</p> <p><img alt="réglages" src="/0d/f/streaming/streaming_settings.png" /></p> <p>Pour écouter un morceau en streaming il suffit de sélectionner un fichier audio dans l'explorateur ou dans la liste des fichiers hors-lignes.</p> <p><img alt="album dans l'explorateur" src="/0d/f/streaming/streaming_album.png" /></p> <h2>Le Player</h2> <p>Une fois sélectionné, une playlist avec tous les fichiers audio du répertoire courant est automatiquement créée et la lecture est démarrée. Si le répertoire contient tous les titres d'un même album alors la playlist reflétera exactement le contenu de l'album. Ainsi après la lecture du morceau sélectionné, le morceau suivant dans la playlist sera automatiquement lu.</p> <p><img alt="music player" src="/0d/f/streaming/streaming_view.png" /></p> <h3>Astuces</h3> <ul> <li>Un fichier peut être supprimé de la playlist en faisant avec le doigt un mouvement horizontal de suppression.</li> <li>Une image est affichée dans le coin supérieur gauche du player si son nom de fichier contient les mots <em>front</em> ou <em>cover</em>. Cette image doit bien sûr être présente dans le même répertoire que les mp3 associés.</li> </ul> <h2>Impact réseau</h2> <p>Dans l'explorateur les fichiers qui ont déjà été téléchargés et qui sont archivés sur le disque de l'iPad ont leur nom représenté avec une couleur de police verte. Quand un fichier audio en vert est sélectionné aucun streaming réseau n'est effectué, la lecture est réalisée directement à partir du fichier local, c'est toujours plus efficace que d'ouvrir une nouvelle connexion réseau.</p> <p>Pour les autres fichiers une connexion réseau Wifi est établie avec le Freebox Server pour débuter la lecture du fichier. Cette connexion est possible en accès direct sur la Freebox ou en accès distant. <s>Même si techniquement çà ne présente aucune différence, le streaming en 3G est actuellement désactivé. Cette restriction est faite pour éviter d'impacter le forfait 3G pour les gens qui ne réaliseraient pas que le streaming a tout de même un coût réseau non négligeable.</s> (Mise à jour 11/02/2012) Le streaming est désormais possible en 3G avec la mise à jour 2.3 de FreeboxSync vu que beaucoup d'entre nous avons le généreux forfait data de Free mobile et ses 3go.</p> <p>En terme de bande passante, la lecture d'un fichier non compressé comme un <em>wav</em> ne présente généralement pas de problème, du moins en accès local. Dans tous les cas la qualité du streaming dépendra de la qualité de la connexion réseau.</p> <h2>Intégration</h2> <p>L'intégration dans iOS est normalement assez soignée. Il est possible de contrôler le lecteur (mettre en pause/lecture/titre suivant) avec la télécommande associée aux écouteurs Apple. Il est également possible de le contrôler à partir du gestionnaire de tâche et de l'écran d'accueil.</p> <p><img alt="gestionnaire de tâches" src="/0d/f/streaming/streaming_taskmanager.png" /></p> <p><img alt="écran d'accueil" src="/0d/f/streaming/streaming_lockscreen.png" /></p> <h3>Tâche de fond</h3> <p>Après une période d'inactivité l'appareil se met automatiquement en veille mais le player continue à fonctionner et à jouer le morceau courant et enchaîne ensuite sur les morceaux suivants. Le même principe prévaut lorsqu'une autre application est sélectionnée tandis que FreeboxSync se trouve reléguée en tâche de fond.</p> <h3>Airplay</h3> <p>Airplay est un protocole réseau de diffusion introduit progressivement par Apple dans la plupart de ses produits. C'est d'autant plus intéressant de gérer ce protocole que les Freebox de Free le supportent également<sup id="fnref:airplay"><a href="#fn:airplay" rel="footnote">2</a></sup> sous la dénomination AirMédia. Il est donc par exemple possible de jouer en streaming un mp3 sur le Freebox Player et donc profiter des enceintes de la télévision.</p> <p><img alt="airplay" src="/0d/f/streaming/streaming_airplay.png" /></p> <p>La fonction Airplay de l'AppleTV a également été testée et fonctionne normalement. Je n'ai pas testé avec une borne Airport Express mais il n'y a pas de raison que cela soit différent.</p> <h4>Notes :</h4> <div class="footnote"> <hr /> <ol> <li id="fn:formats"> <p>en plus des fichiers mp3 les autres formats audio supportés sont aac, wav, m4a, caf et aif.&#160;<a href="#fnref:formats" rev="footnote" title="Jump back to footnote 1 in the text">&#8617;</a></p> </li> <li id="fn:airplay"> <p>du moins en ce qui concerne la diffusion des fichiers audio. Pour configurer AirMédia sur la Freebox il suffit de suivre le <a href="http://www.freenews.fr/spip.php?article10658">tutoriel</a> proposé par <a href="http://freenews.fr">Freenews.fr</a>.&#160;<a href="#fnref:airplay" rev="footnote" title="Jump back to footnote 2 in the text">&#8617;</a></p> </li> </ol> </div>Thu, 10 Nov 2011 00:00:00 GMT