{"id":1577,"date":"2010-07-17T01:57:54","date_gmt":"2010-07-16T23:57:54","guid":{"rendered":"http:\/\/www.alphak.net\/news\/?p=1577"},"modified":"2010-08-15T22:03:30","modified_gmt":"2010-08-15T20:03:30","slug":"youpi-me-revoila","status":"publish","type":"post","link":"https:\/\/www.alphak.net\/news\/2010\/07\/youpi-me-revoila\/","title":{"rendered":"Youpi, me revoila !"},"content":{"rendered":"<p>Apr\u00e8s un temps d&rsquo;attente assez long, et une remarque d&rsquo;un certain J\u00e9r\u00e9mie s&rsquo;\u00e9tonnant du manque de nouveau contenu ces derni\u00e8res semaines, je reprends mon courage et tente d\u00e9sesp\u00e9r\u00e9ment un <strong>nouveau d\u00e9part<\/strong> sur tous mes projets farfelus ainsi que leur narration sur la toile 2.0.<\/p>\n<p>Ces derniers temps, je me suis l\u00e9g\u00e8rement int\u00e9ress\u00e9 \u00e0 la cr\u00e9ation d&rsquo;un <strong>backend g\u00e9n\u00e9rique<\/strong> pour contr\u00f4ler le robot <strong>Youpi<\/strong>. Ceux qui ont manqu\u00e9 les \u00e9pisodes pr\u00e9c\u00e9dents au sujet de ce robot peuvent toujours les retrouver <a href=\"\/news\/tag\/youpi\/\">ici<\/a>.<\/p>\n<p>J&rsquo;exposerai dans cet article et les suivants le <strong>r\u00e9sultat de mes r\u00e9flexions<\/strong> encore l\u00e9g\u00e8rement inachev\u00e9es, qui constitueront par la m\u00eame occasion un <strong>draft de documentation<\/strong> pour ceux qui souhaiteraient l&rsquo;utiliser et\/ou cr\u00e9er les frontends ad\u00e9quats.<\/p>\n<p>Le but de l&rsquo;op\u00e9ration est le suivant :<\/p>\n<ul>\n<li>D\u00e9veloppement d&rsquo;un <strong>backend <\/strong>utilis\u00e9 comme point d&rsquo;interface unique avec le robot, acceptant des <strong>instructions g\u00e9n\u00e9riques de haut niveau<\/strong>, capable de les interpr\u00e9ter et de les r\u00e9gurgiter en instructions de bas niveau pour le robot.<\/li>\n<li>Sur ce backend pourront se greffer divers <strong>frontends <\/strong>faisant le lien avec l&rsquo;utilisateur, qui pourront \u00eatre d\u00e9velopp\u00e9s par n&rsquo;importe qui en fonction des besoins. Ces frontends auront pour but de <strong>saisir les commandes de l&rsquo;utilisateur<\/strong> par divers moyens (clavier, joystick, interface web), de les convertir en instructions de haut niveau et de les envoyer au backend.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">Je r\u00e9sume donc ce but avec le diagramme suivant :<\/p>\n<div id=\"attachment_1579\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/cdn.alphak.net\/news\/wp-content\/uploads\/sites\/2\/2010\/07\/youpi-schema-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1579\" class=\"size-medium wp-image-1579  \" title=\"youpi-schema-1\" src=\"http:\/\/cdn.alphak.net\/news\/wp-content\/uploads\/sites\/2\/2010\/07\/youpi-schema-1-300x226.png\" alt=\"Diagramme d'interaction entre composants\" width=\"300\" height=\"226\" srcset=\"https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2010\/07\/youpi-schema-1-300x226.png 300w, https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2010\/07\/youpi-schema-1-768x579.png 768w, https:\/\/cdn.alphak.net\/wp-content\/uploads\/sites\/2\/2010\/07\/youpi-schema-1.png 836w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1579\" class=\"wp-caption-text\">Diagramme d&#39;interaction entre composants<\/p><\/div>\n<p>Dans la suite de cet article, je me concentrerai sur le backend, les diff\u00e9rents frontends pouvant \u00eatre d\u00e9velopp\u00e9s \u00e0 loisir en fonction des besoins. Ma r\u00e9flexion m&rsquo;a men\u00e9 aux <strong>exigences <\/strong>et <strong>cons\u00e9quences <\/strong>suivantes :<\/p>\n<ul>\n<li>Le backend doit \u00eatre \u00e9crit dans un langage portable, lisible, et disposant d&rsquo;un nombre cons\u00e9quent de modules ou biblioth\u00e8ques afin de faciliter la t\u00e2che du d\u00e9veloppeur \u2192 je choisis <strong>Python<\/strong>.<\/li>\n<li>Le backend doit pouvoir communiquer facilement avec les frontends, accepter leurs instructions mais aussi leur fournir un retour \u2192 je choisis la communication par <strong>sockets<\/strong>.<\/li>\n<li>Le backend doit accepter des commandes de haut niveau, offrant le plus de souplesse possible aux frontends, au format texte de fa\u00e7ons \u00e0 pouvoir \u00eatre lues par un humain \u2192 je m&rsquo;oriente vers une syntaxe simple permettant \u00e0 la fois l&rsquo;enchainement et la parall\u00e9lisation de commandes.<\/li>\n<\/ul>\n<p>Cette syntaxe est encore en cours de conception \u00e0 l&rsquo;heure actuelle, elle fera l&rsquo;objet d&rsquo;un prochain article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Apr\u00e8s un temps d&rsquo;attente assez long, et une remarque d&rsquo;un certain J\u00e9r\u00e9mie s&rsquo;\u00e9tonnant du manque de nouveau contenu ces derni\u00e8res semaines, je reprends mon courage et tente d\u00e9sesp\u00e9r\u00e9ment un <strong>nouveau d\u00e9part<\/strong> sur tous mes projets farfelus ainsi que leur narration sur la toile 2.0.<\/p>\n<p>Ces derniers temps, je me suis l\u00e9g\u00e8rement int\u00e9ress\u00e9 \u00e0 la cr\u00e9ation d&rsquo;un <strong>backend g\u00e9n\u00e9rique<\/strong> pour contr\u00f4ler le robot <strong>Youpi<\/strong>. Ceux qui ont manqu\u00e9 les \u00e9pisodes pr\u00e9c\u00e9dents au sujet de ce robot peuvent toujours les retrouver <a href=\"\/news\/tag\/youpi\/\">ici<\/a>.<\/p>\n<p>J&rsquo;exposerai dans cet article et les suivants le <strong>r\u00e9sultat de mes r\u00e9flexions<\/strong> encore l\u00e9g\u00e8rement inachev\u00e9es, qui constitueront par la m\u00eame occasion un <strong>draft de documentation<\/strong> pour ceux qui souhaiteraient l&rsquo;utiliser et\/ou cr\u00e9er les frontends ad\u00e9quats.<\/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\/2010\/07\/youpi-me-revoila\/\" title=\"Youpi, me revoila !\" 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\/2010\/07\/youpi-me-revoila\/\" title=\"Youpi, me revoila !\" rel=\"bookmark\"><\/a>\r\n\t<\/div>\r\n","protected":false},"author":1,"featured_media":1579,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[142],"tags":[211,212,143,213,144],"class_list":["post-1577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bricolage","tag-backend","tag-python","tag-robot","tag-socket","tag-youpi"],"_links":{"self":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/1577"}],"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=1577"}],"version-history":[{"count":0,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/1577\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media\/1579"}],"wp:attachment":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media?parent=1577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/categories?post=1577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/tags?post=1577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}