{"id":1793,"date":"2011-09-13T22:05:08","date_gmt":"2011-09-13T20:05:08","guid":{"rendered":"http:\/\/www.alphak.net\/news\/?p=1793"},"modified":"2017-05-15T20:50:53","modified_gmt":"2017-05-15T18:50:53","slug":"youfo-le-front-end-pour-youpi","status":"publish","type":"post","link":"https:\/\/www.alphak.net\/news\/2011\/09\/youfo-le-front-end-pour-youpi\/","title":{"rendered":"Youfo : le front-end pour Youpi"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1794\" title=\"Youfo Logo\" src=\"http:\/\/cdn.alphak.net\/news\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo.png\" alt=\"\" width=\"256\" height=\"134\" \/><\/p>\n<p>Avec la fin de mes travaux sur le back-end du robot <strong>Youpi<\/strong>, sauf remont\u00e9e de bugs \u00e9ventuelle, j&rsquo;\u00e9tais arriv\u00e9 \u00e0 la conclusion que je pouvais enfin passer \u00e0 autre chose. Mais en m\u00eame temps, j&rsquo;avais sous la main un back-end plut\u00f4t abouti et pas avare en possibilit\u00e9s, et rien d&rsquo;autre pour faciliter la manipulation du robot ou l&rsquo;\u00e9laboration de scripts.<\/p>\n<p>Je devais me rendre \u00e0 l&rsquo;\u00e9vidence : il fallait que je r\u00e9alise rapidement un petit <strong>front-end<\/strong> pour que le sujet soit boucl\u00e9. Libre ensuite aux gens de l&rsquo;utiliser, de l&rsquo;autopsier, et de l&rsquo;adapter.<\/p>\n<p>J&rsquo;ai voulu un front-end pour un <strong>pilotage \u00e0 la souris<\/strong> qui soit dans la mesure du possible <strong>l\u00e9ger et multiplateformes<\/strong>. Quoi de mieux qu&rsquo;un front-end client l\u00e9ger accessible depuis n&rsquo;importe quel navigateur\u00a0\u2014 N&rsquo;importe quel navigateur r\u00e9cent, s&rsquo;entend. Fuck off IE6.<\/p>\n<p>C&rsquo;est de cette mani\u00e8re qu&rsquo;est n\u00e9 <strong>Youfo<\/strong> (pour YOUpi FrOnt-end), une interface web ridiculement sobre, d\u00e9velopp\u00e9e en quelques heures, articul\u00e9e autour du framework jQuery et communiquant avec le back-end gr\u00e2ce \u00e0 des messages Ajax\/JSONP.<\/p>\n<div id=\"attachment_1795\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/cdn.alphak.net\/news\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo-gui.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1795\" class=\"size-medium wp-image-1795\" title=\"Youfo GUI\" src=\"http:\/\/cdn.alphak.net\/news\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo-gui-300x227.png\" alt=\"L'interface utilisateur de Youfo\" width=\"300\" height=\"227\" srcset=\"https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo-gui-300x227.png 300w, https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo-gui-768x581.png 768w, https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2011\/09\/youfo-gui.png 1008w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1795\" class=\"wp-caption-text\">L&rsquo;interface utilisateur de Youfo<\/p><\/div>\n<p>L&rsquo;interface permet de piloter chacun des moteurs en cliquant sur le bouton appropri\u00e9. Pour le fun, lors d&rsquo;un survol des boutons, la partie du robot concern\u00e9e par le mouvement se colorise sur l&rsquo;image d&rsquo;\u00e0 c\u00f4t\u00e9.<\/p>\n<p>En plus de cet aspect \u00ab\u00a0pilotage en temps r\u00e9el\u00a0\u00bb, \u00e0 chaque fois que la position de l&rsquo;ensemble du robot est satisfaisante, un clic sur le bouton au centre de l&rsquo;\u00e9cran permet de r\u00e9cup\u00e9rer la position de tous les moteurs et enrichit le script dans la zone de texte. Il est ainsi possible de copier\/coller le contenu de cette zone dans un shell qui, lorsqu&rsquo;il est ex\u00e9cut\u00e9, rejoue les positions enregistr\u00e9es de mani\u00e8re fluide et rapide.<\/p>\n<p>Si vous consid\u00e9rez ces explications un peu abstraites, la vid\u00e9o suivante sera peut-\u00eatre plus parlante :<\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-1793-1\" width=\"640\" height=\"480\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/cdn.alphak.net\/videos\/04-Youfo.mp4?_=1\" \/><a href=\"http:\/\/cdn.alphak.net\/videos\/04-Youfo.mp4\">http:\/\/cdn.alphak.net\/videos\/04-Youfo.mp4<\/a><\/video><\/div>\n<p>Au final, m\u00eame si cette interface reste d\u00e9pouill\u00e9e et souffre parfois d&rsquo;un peu de lag, elle est facilement utilisable et elle d\u00e9montre surtout un des<strong> gros avantages<\/strong> du back-end Youba : la possibilit\u00e9 d&rsquo;\u00e9crire et d&rsquo;int\u00e9grer au projet le front-end de son choix en tr\u00e8s peu de temps. J&rsquo;invite les bidouilleurs un peu curieux \u00e0 regarder le code du c\u0153ur du front-end (resources\/youfo.js) qui ne d\u00e9passe pas les 150 lignes.<\/p>\n<p>\u00c0 partir de l\u00e0, on peut aussi envisager d&rsquo;autres front-ends pour un pilotage au clavier, au joystick, \u00e0 la Wiimote&#8230; Les plus motiv\u00e9s pourront d\u00e9cliner le produit en version un poil plus r\u00e9active gr\u00e2ce \u00e0 une r\u00e9\u00e9criture Java ou Qt&#8230; Il y a de quoi faire : amusez-vous, faites-vous plaisir.<\/p>\n<p>Derni\u00e8res recommandations :<\/p>\n<ul>\n<li>Youfo n\u00e9cessite une version de Youba &gt;= 1.4<\/li>\n<li>Les deux applications se trouvent sur la page des <a href=\"\/news\/telechargements\/\">t\u00e9l\u00e9chargements<\/a>.<\/li>\n<\/ul>\n<p>Enjoy !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec la fin de mes travaux sur le back-end du robot <strong>Youpi<\/strong>, sauf remont\u00e9e de bugs \u00e9ventuelle, j&rsquo;\u00e9tais arriv\u00e9 \u00e0 la conclusion que je pouvais enfin passer \u00e0 autre chose. Mais en m\u00eame temps, j&rsquo;avais sous la main un back-end plut\u00f4t abouti et pas avare en possibilit\u00e9s, et rien d&rsquo;autre pour faciliter la manipulation du robot ou l&rsquo;\u00e9laboration de scripts.<\/p>\n<p>Je devais me rendre \u00e0 l&rsquo;\u00e9vidence : il fallait que je r\u00e9alise rapidement un petit <strong>front-end<\/strong> pour que le sujet soit boucl\u00e9. Libre ensuite aux gens de l&rsquo;utiliser, de l&rsquo;autopsier, et de l&rsquo;adapter.<\/p>\n<p>J&rsquo;ai voulu un front-end pour un <strong>pilotage \u00e0 la souris<\/strong> qui soit dans la mesure du possible <strong>l\u00e9ger et multiplateformes<\/strong>. Quoi de mieux qu&rsquo;un front-end client l\u00e9ger accessible depuis n&rsquo;importe quel navigateur\u00a0\u2014 N&rsquo;importe quel navigateur r\u00e9cent, s&rsquo;entend. Fuck off IE6.<\/p>\n\t<div class=\"post-teaser-block\">\r\n\t\t<div class=\"teaserHellip\">\r\n\t\t\t<span class=\"teaserLeft\">[<\/span><span class=\"teaserCenter\">&hellip;<\/span><span class=\"teaserRight\">]<\/span>\r\n\t\t<\/div>\r\n\t\t<div class=\"teaserText\">\r\n\t\t\t<a href=\"https:\/\/www.alphak.net\/news\/2011\/09\/youfo-le-front-end-pour-youpi\/\" title=\"Youfo : le front-end pour Youpi\" rel=\"bookmark\"><span class=\"teaserlink\">Lire la suite de l'article&nbsp;<i class=\"fa fa-chevron-right\"><\/i><\/span><\/a>\r\n\t\t<\/div>\r\n\t\t<a class=\"teaserLink\" href=\"https:\/\/www.alphak.net\/news\/2011\/09\/youfo-le-front-end-pour-youpi\/\" title=\"Youfo : le front-end pour Youpi\" rel=\"bookmark\"><\/a>\r\n\t<\/div>\r\n","protected":false},"author":1,"featured_media":1795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[142],"tags":[76,240,128,239,241,243,242,143,280,144],"class_list":["post-1793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bricolage","tag-ajax","tag-developpement","tag-diy","tag-experience","tag-gui","tag-jquery","tag-jsonp","tag-robot","tag-video","tag-youpi"],"_links":{"self":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/1793"}],"collection":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/comments?post=1793"}],"version-history":[{"count":4,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/1793\/revisions"}],"predecessor-version":[{"id":3106,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/1793\/revisions\/3106"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media\/1795"}],"wp:attachment":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media?parent=1793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/categories?post=1793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/tags?post=1793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}