Linux Fu : fusionner Hackaday | Hackaday

Unix et, par extension, Linux, ont pour mantra de faire ressembler tout ce qui est possible à un fichier. Les fichiers, bien sûr, ressemblent à des fichiers. Mais aussi les périphériques, les sockets réseau et même les informations système apparaissent comme des éléments qui semblent être des fichiers. Il y a beaucoup d’avantages à faire cela puisque vous pouvez utiliser tous les bons outils comme grep et find pour travailler avec des fichiers. Cependant, faire en sorte que vos propres programmes exposent un système de fichiers peut être difficile. Le code du système de fichiers fonctionne traditionnellement au niveau du module du noyau, où les erreurs peuvent effacer beaucoup de choses et le débogage est difficile. Cependant, il existe FUSE – le système de fichiers dans la bibliothèque de l’espace utilisateur – qui vous permet d’écrire du code plus ou moins ordinaire et d’exposer tout ce que vous voulez en tant que système de fichiers. Vous avez probablement vu FUSE utilisé pour monter, par exemple, des lecteurs distants via ssh ou Dropbox. Nous avons même déjà examiné FUSE, même pour Windows.

Ce qui manque, naturellement, c’est le flux RSS Hackaday, montable comme un fichier normal. Et c’est ce que nous construisons aujourd’hui.

L’écriture d’un système de fichiers FUSE n’est pas si difficile, mais il y a beaucoup de tâches fastidieuses. Vous devez essentiellement fournir des rappels que FUSE utilise pour faire des choses lorsque le système d’exploitation les demande. Ouvrir un fichier, lire un fichier, lister un répertoire, etc. Le problème est que pour certains projets simples, vous ne vous souciez pas de la moitié de ces choses, mais vous devez quand même les fournir.

Heureusement, il existe des bibliothèques qui peuvent le rendre beaucoup plus facile. Je vais vous montrer un programme C++ simple qui peut monter votre flux RSS préféré (en supposant que votre favori soit Hackaday, bien sûr) en tant que système de fichiers. Certes, ce n’est pas étonnant, mais c’est plutôt sympa de pouvoir parcourir les histoires de la première page à partir de la ligne de commande ou de voir les derniers articles en utilisant Dolphin.

Choisissez une bibliothèque

Il existe de nombreuses bibliothèques et wrappers autour de FUSE. j’en ai choisi un par [jachappell] sur GitHub. C’était assez simple et cache juste assez de FUSE pour être pratique, mais pas au point d’être un problème. Tout le code est caché dans Fuse.h.

Une chose à noter est que la bibliothèque suppose que vous utilisez libfuse 3.0. Si vous ne l’avez pas déjà, vous devrez installer le libfuse package de développement 3.0 de votre gestionnaire de packages. Il existe d’autres choix de bibliothèques, bien sûr, et vous pouvez simplement écrire dans le sous-jacent libfuse mise en œuvre, mais une bonne bibliothèque peut rendre le démarrage beaucoup plus simple.

Juste pour garder les choses simples, j’ai bifurqué le projet original sur GitHub et ajouté un répertoire fusehad.

Contraintes

Pour garder les choses simples, j’ai décidé de ne pas trop me soucier des performances. Étant donné que les données voyagent sur le réseau, j’essaie de les mettre en cache et je n’actualise pas les données plus tard. Bien sûr, vous ne pouvez pas du tout écrire sur le système de fichiers. C’est uniquement pour lire Hackaday.

Ces contraintes facilitent les choses. Bien sûr, si vous écriviez votre propre système de fichiers, vous pourriez en assouplir certains, mais cela aide toujours à faire fonctionner quelque chose d’aussi simple que possible en premier.

Le faire fonctionner d’abord

En parlant de cela, la première chose à faire est de pouvoir lire le flux RSS de Hackaday et d’extraire les pièces dont nous avons besoin. Encore une fois, sans me soucier des performances, j’ai décidé de le faire avec une pipe et d’appeler à curl. Oui, c’est de la triche, mais ça marche très bien, et c’est pourquoi nous avons des outils en premier lieu.

le HaDFS.cpp Le fichier a quelques fonctions liées à FUSE et certaines fonctions d’assistance également. Cependant, je voulais me concentrer sur le fonctionnement du flux RSS, j’ai donc mis le code associé dans une fonction que j’ai créée et appelée userinit. J’ai découvert à la dure que le nommer init serait en conflit avec la bibliothèque.

Le système FUSE normal traite vos arguments de ligne de commande – une bonne chose, comme vous le verrez bientôt. Donc le principal dans HaD.cpp est vraiment simple:


#include <stdio.h>
#include "HaDFS.h"
int main(int argc, char *argv[])
{
  HaDFS fs;
  if (fs.userinit())
  {
    fprintf(stderr,"Can't fetch feedn");
    return 99;
  };
  int status;
  status= fs.run(argc, argv);
  return status;
}


Cependant, pour l’instant, j’ai simplement commenté la ligne qui appelle fs.run. Cela m’a laissé avec un programme simple qui appelle simplement userinit.

Lire le flux n’est pas si difficile depuis que je suis conscrit curl. Chaque sujet est dans une structure et il existe un tableau de ces structures. Si vous essayez de charger trop d’histoires, le code supprime simplement l’excédent (voir MAXTOPIC). le topics La variable globale indique le nombre d’histoires que nous avons réellement chargées.



// The curl line to read our feed
static char cmd[]="curl https://hackaday.com/feed/ 2>/dev/null | egrep '(<title>;)|(<link>)'";
// User initialization--read the feed (note that init is reserved by the FUSE library)
int HaDFS::userinit(void)
{
   FILE *fp;
   char buf[1024]; // working buffer for reading strings
   if (!( fp = popen(cmd,"r") )) return 1; // open pipe
   while ( fgets(buf,sizeof(buf),fp) )
     {
     string line = buf;
     line = trimrss(line); // trim off extra stuff
     if ( line.substr(0,7) == "<title>" ) // identify line type and process
        {
        topic[topics].title = line.substr(7);
        topic[topics].title += ".html";
        }
    else if (line.substr(0,6)=="<link>")
        {
        topic[topics].url = line.substr(6);
        topics++;
        if ( topics == MAXTOPIC ) break; // quietly truncate a long feed
        }
    }
   pclose(fp);
   return 0;
} 

le popen La fonction exécute une ligne de commande et nous donne le stdout flux comme un tas de lignes. Le traitement des lignes est juste une force brute à la recherche de et <link> pour identifier les données dont nous avons besoin. j’ai filtré <code>curl</code> par <code>grep</code> pour m’assurer que je n’avais pas beaucoup de lignes supplémentaires, au fait, et j’ai supposé des minuscules, mais un <code>-i</code> option pourrait facilement résoudre ce problème. La redirection est d’empêcher <code>curl</code> de polluer <code>stderr</code>, bien que normalement FUSE déconnecte les flux de sortie, cela n’a donc pas vraiment d’importance. Notez que j’ajoute une extension HTML à chaque faux nom de fichier afin que l’ouverture d’un fichier ait plus de chances d’atteindre le navigateur.</p> <p>En mettant un <code>printf</code> dans le code, j’ai pu m’assurer que la récupération du flux fonctionnait comme prévu. Notez que je ne récupère les pages réelles que plus tard dans le processus. Pour l’instant, je veux juste les titres et les liens URL.</p> <h2>Les quatre fonctions</h2> <p>Il y a quatre fonctions que nous devons créer dans une sous-classe pour obtenir un système de fichiers minimal en lecture seule : <code>getattr</code>, <code>readdir</code>, <code>open</code>et <code>read</code>. Ces fonctions font à peu près ce que vous attendez. le <code>getattr</code> call renverra 755 pour notre répertoire racine (et unique) et 444 pour tout autre fichier existant. le <code>readdir</code> génère des entrées pour . et .. avec nos « fichiers ». <code>Open</code> et <code>read</code> faites exactement ce que vous pensez qu’ils font.</p> <p>Il y a quelques autres fonctions, mais ce sont celles que j’ai ajoutées pour m’aider :</p> <ul> <li><code>userinit</code> – Appelé pour lancer les données du système de fichiers</li> <li><code>trimrss</code> – Découpez une ligne RSS pour la rendre plus facile à analyser</li> <li><code>pathfind</code> – Transformez un nom de fichier en descripteur (un index dans le tableau des rubriques)</li> <li><code>readurl</code> – Renvoie une chaîne avec le contenu d’une URL (utilise curl)</li> </ul> <p>Il n’y a pas grand chose à faire. Vous verrez dans le code qu’il y a quelques éléments à surveiller, comme attraper quelqu’un essayant d’écrire dans un fichier car cela n’est pas autorisé.</p> <h2>Options de débogage et de ligne de commande</h2> <p>Bien sûr, peu importe à quel point c’est simple, ça ne marchera pas la première fois, n’est-ce pas ? Bien sûr, d’abord, vous devez vous rappeler de mettre l’appel à <code>fs.run</code> retour dans la fonction principale. Mais, bien sûr, les choses ne fonctionneront pas comme prévu pour un certain nombre de raisons. Il y a quelques points à retenir lors de l’exécution et du débogage.</p> <p>Lorsque vous construisez votre exécutable, vous l’exécutez simplement et fournissez un argument de ligne de commande pour spécifier le point de montage qui, bien sûr, devrait exister. J’ai l’habitude d’utiliser <code>/tmp/mnt</code> pendant le débogage, mais cela peut être n’importe où vous avez des autorisations.</p> <p>En fonctionnement normal, FUSE détache votre programme afin que vous ne puissiez pas simplement le tuer. Vous devrez utiliser la commande unmount (<code>fusermount -u</code>) avec le point de montage comme argument. Même si votre programme meurt avec une erreur de segment, vous devrez utiliser la commande unmount ou vous obtiendrez probablement le message d’erreur redouté « point final déconnecté ».</p> <p>Être détaché conduit à un problème. Si vous mettez <code>printf</code> instructions dans votre code, elles n’apparaîtront jamais après le détachement. Pour cette raison, FUSE comprend les <code>-f</code> drapeau qui indique au système de garder votre système de fichiers en cours d’exécution au premier plan. Ensuite, vous pouvez voir les messages et une sortie propre, comme un Control + C, démontera proprement le système de fichiers. Vous pouvez aussi utiliser <code>-d</code> qui permet un débogage intégré et implique <code>-f</code>. le <code>-s</code> flag désactive le threading, ce qui peut faciliter le débogage ou le compliquer si vous avez affaire à un problème lié au thread.</p> <p>Vous pouvez utiliser <code>gdb</code>, et il y a de bons articles à ce sujet. Mais pour un morceau de code aussi simple, ce n’est pas vraiment nécessaire.</p> <h2>Et après?</h2> <p>La documentation de la bibliothèque n’est presque rien. Cependant, la bibliothèque reflète étroitement la <code>libfuse</code> API donc la documentation pour cela (principalement dans fuse.h) vous aidera à aller plus loin. Si vous souhaitez passer de FUSE à un « vrai » système de fichiers, la route est longue. La vidéo ci-dessous donne quelques informations sur Linux VFS, mais ce n’est que le début de cette voie.</p> <p><span class="embed-youtube" style="text-align:center; display: block;"></p> <div class="youtube-embed" data-video_id="J4qWNNISdJk"><iframe title="Linux Internals: Virtual File System (VFS)" width="696" height="392" src="https://www.youtube.com/embed/J4qWNNISdJk?feature=oembed&enablejsapi=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></div> <p></span></p> <p>Peut-être s’en tenir à FUSE pendant un certain temps. Si vous préférez Python, pas de problème. FUSE est très populaire pour mapper le stockage en nuage dans votre système de fichiers, mais avec votre propre codage, vous pouvez tout aussi facilement exposer votre Arduino ou tout autre élément avec lequel votre ordinateur peut communiquer.</p> </p></div> <div class="kk-star-ratings kksr-auto kksr-align-center kksr-valign-bottom" data-payload='{"align":"center","id":"10812","slug":"default","valign":"bottom","ignore":"","reference":"auto","class":"","count":"0","legendonly":"","readonly":"","score":"0","starsonly":"","best":"5","gap":"4","greet":"","legend":"0\/5 - (0 vote)","size":"18","title":"Linux Fu : fusionner Hackaday | Hackaday","width":"0","_legend":"{score}\/{best} - ({count} {votes})","font_factor":"1.25"}'> <div class="kksr-stars"> <div class="kksr-stars-inactive"> <div class="kksr-star" data-star="1" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" data-star="2" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" data-star="3" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" data-star="4" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" data-star="5" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> </div> <div class="kksr-stars-active" style="width: 0px;"> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> <div class="kksr-star" style="padding-right: 4px"> <div class="kksr-icon" style="width: 18px; height: 18px;"></div> </div> </div> </div> <div class="kksr-legend" style="font-size: 14.4px;"> <span class="kksr-muted"></span> </div> </div> </div> <footer> <!-- post pagination --> <!-- review --> <div class="td-post-source-tags"> <!-- source via --> <!-- tags --> </div> <div class="td-post-sharing-bottom"><div id="td_social_sharing_article_bottom" class="td-post-sharing td-ps-bg td-ps-notext td-post-sharing-style1 "><div class="td-post-sharing-visible"><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2F10-raisons.fr%2Flinux-fu-fusionner-hackaday-hackaday%2F" title="Facebook" ><div class="td-social-but-icon"><i class="td-icon-facebook"></i></div><div class="td-social-but-text">Facebook</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-twitter" href="https://twitter.com/intent/tweet?text=Linux+Fu+%3A+fusionner+Hackaday+%7C++Hackaday&url=https%3A%2F%2F10-raisons.fr%2Flinux-fu-fusionner-hackaday-hackaday%2F&via=10_Raisons" title="Twitter" ><div class="td-social-but-icon"><i class="td-icon-twitter"></i></div><div class="td-social-but-text">Twitter</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-pinterest" href="https://pinterest.com/pin/create/button/?url=https://10-raisons.fr/linux-fu-fusionner-hackaday-hackaday/&media=https://10-raisons.fr/wp-content/uploads/2022/02/Linux-Fu-fusionner-Hackaday-Hackaday.png&description=Linux+Fu+%3A+fusionner+Hackaday+%7C++Hackaday" title="Pinterest" ><div class="td-social-but-icon"><i class="td-icon-pinterest"></i></div><div class="td-social-but-text">Pinterest</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://10-raisons.fr/linux-fu-fusionner-hackaday-hackaday/&title=Linux+Fu+%3A+fusionner+Hackaday+%7C++Hackaday" title="Linkedin" ><div class="td-social-but-icon"><i class="td-icon-linkedin"></i></div><div class="td-social-but-text">Linkedin</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-mail" href="mailto:?subject=Linux Fu : fusionner Hackaday | Hackaday&body=https://10-raisons.fr/linux-fu-fusionner-hackaday-hackaday/" title="Email" ><div class="td-social-but-icon"><i class="td-icon-mail"></i></div><div class="td-social-but-text">Email</div></a><a class="td-social-sharing-button td-social-sharing-button-js td-social-network td-social-whatsapp" href="https://api.whatsapp.com/send?text=Linux+Fu+%3A+fusionner+Hackaday+%7C++Hackaday %0A%0A https://10-raisons.fr/linux-fu-fusionner-hackaday-hackaday/" title="WhatsApp" ><div class="td-social-but-icon"><i class="td-icon-whatsapp"></i></div><div class="td-social-but-text">WhatsApp</div></a></div><div class="td-social-sharing-hidden"><ul class="td-pulldown-filter-list"></ul><a class="td-social-sharing-button td-social-handler td-social-expand-tabs" href="#" data-block-uid="td_social_sharing_article_bottom" title="More"> <div class="td-social-but-icon"><i class="td-icon-plus td-social-expand-tabs-icon"></i></div> </a></div></div></div> <!-- next prev --> <!-- author box --><div class="author-box-wrap"><a href="https://10-raisons.fr/author/10raisons/" aria-label="author-photo"><img alt='François Zipponi' src='https://10-raisons.fr/wp-content/uploads/2023/01/cropped-Francois-Zipponi-96x96.jpg' srcset='https://10-raisons.fr/wp-content/uploads/2023/01/cropped-Francois-Zipponi-192x192.jpg 2x' class='avatar avatar-96 photo' height='96' width='96' decoding='async'/></a><div class="desc"><div class="td-author-name vcard author"><span class="fn"><a href="https://10-raisons.fr/author/10raisons/">François Zipponi</a></span></div><div class="td-author-url"><a href="https://10-raisons.fr/author/10raisons/">https://10-raisons.fr/author/10raisons/</a></div><div class="td-author-description">Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.</div><div class="td-author-social"></div><div class="clearfix"></div></div></div> <!-- meta --><span class="td-page-meta" itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="François Zipponi"><meta itemprop="url" content="https://10-raisons.fr/author/10raisons/"></span><meta itemprop="datePublished" content="2022-02-17T00:34:35+01:00"><meta itemprop="dateModified" content="2022-02-17T00:34:35+01:00"><meta itemscope itemprop="mainEntityOfPage" itemType="https://schema.org/WebPage" itemid="https://10-raisons.fr/linux-fu-fusionner-hackaday-hackaday/"/><span class="td-page-meta" itemprop="publisher" itemscope itemtype="https://schema.org/Organization"><span class="td-page-meta" itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://10-raisons.fr/wp-content/uploads/2020/02/logo-e1581130995254-300x218.png"></span><meta itemprop="name" content="10 Raisons"></span><meta itemprop="headline " content="Linux Fu : fusionner Hackaday | Hackaday"><span class="td-page-meta" itemprop="image" itemscope itemtype="https://schema.org/ImageObject"><meta itemprop="url" content="https://10-raisons.fr/wp-content/uploads/2022/02/Linux-Fu-fusionner-Hackaday-Hackaday.png"><meta itemprop="width" content="400"><meta itemprop="height" content="285"></span> </footer> </article> <!-- /.post --> <div class="td_block_wrap td_block_related_posts tdi_31 td_with_ajax_pagination td-pb-border-top td_block_template_1" data-td-block-uid="tdi_31" ><script>var block_tdi_31 = new tdBlock(); block_tdi_31.id = "tdi_31"; block_tdi_31.atts = '{"limit":3,"ajax_pagination":"next_prev","live_filter":"cur_post_same_categories","td_ajax_filter_type":"td_custom_related","class":"tdi_31","td_column_number":3,"block_type":"td_block_related_posts","live_filter_cur_post_id":10812,"live_filter_cur_post_author":"5","block_template_id":"","header_color":"","ajax_pagination_infinite_stop":"","offset":"","td_ajax_preloading":"","td_filter_default_txt":"","td_ajax_filter_ids":"","el_class":"","color_preset":"","ajax_pagination_next_prev_swipe":"","border_top":"","css":"","tdc_css":"","tdc_css_class":"tdi_31","tdc_css_class_style":"tdi_31_rand_style"}'; block_tdi_31.td_column_number = "3"; block_tdi_31.block_type = "td_block_related_posts"; block_tdi_31.post_count = "3"; block_tdi_31.found_posts = "3383"; block_tdi_31.header_color = ""; block_tdi_31.ajax_pagination_infinite_stop = ""; block_tdi_31.max_num_pages = "1128"; tdBlocksArray.push(block_tdi_31); </script><span class="td-related-title td-block-title"><a id="tdi_32" class="td-related-left td-cur-simple-item" data-td_filter_value="" data-td_block_id="tdi_31" href="#">ARTICLES SIMILAIRES</a><a id="tdi_33" class="td-related-right" data-td_filter_value="td_related_more_from_author" data-td_block_id="tdi_31" href="#">PLUS DE L'AUTEUR</a></span><div id=tdi_31 class="td_block_inner"> <div class="td-related-row"> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://10-raisons.fr/support-technique-lia-peut-elle-etre-pire/" rel="bookmark" class="td-image-wrap " title="Support technique… L’IA peut-elle être pire ?" ><img width="218" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/03/Support-technique…-LIA-peut-elle-etre-pire-218x150.png" srcset="https://10-raisons.fr/wp-content/uploads/2024/03/Support-technique…-LIA-peut-elle-etre-pire-218x150.png 218w, https://10-raisons.fr/wp-content/uploads/2024/03/Support-technique…-LIA-peut-elle-etre-pire-100x70.png 100w" sizes="(max-width: 218px) 100vw, 218px" alt="" title="Support technique… L’IA peut-elle être pire ?" /></a></div> </div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/support-technique-lia-peut-elle-etre-pire/" rel="bookmark" title="Support technique… L’IA peut-elle être pire ?">Support technique… L’IA peut-elle être pire ?</a></span> </div> </div> </div> <!-- ./td-related-span4 --> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://10-raisons.fr/ordinateurs-fictifs-colosse-et-gardien/" rel="bookmark" class="td-image-wrap " title="Ordinateurs fictifs : Colosse et Gardien" ><img width="218" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/03/Ordinateurs-fictifs-Colosse-et-Gardien-218x150.png" srcset="https://10-raisons.fr/wp-content/uploads/2024/03/Ordinateurs-fictifs-Colosse-et-Gardien-218x150.png 218w, https://10-raisons.fr/wp-content/uploads/2024/03/Ordinateurs-fictifs-Colosse-et-Gardien-324x222.png 324w, https://10-raisons.fr/wp-content/uploads/2024/03/Ordinateurs-fictifs-Colosse-et-Gardien-100x70.png 100w" sizes="(max-width: 218px) 100vw, 218px" alt="" title="Ordinateurs fictifs : Colosse et Gardien" /></a></div> </div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/ordinateurs-fictifs-colosse-et-gardien/" rel="bookmark" title="Ordinateurs fictifs : Colosse et Gardien">Ordinateurs fictifs : Colosse et Gardien</a></span> </div> </div> </div> <!-- ./td-related-span4 --> <div class="td-related-span4"> <div class="td_module_related_posts td-animation-stack td_mod_related_posts"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://10-raisons.fr/retrotechtaculaire-tops-gere-le-british-railroad-des-annees-1970/" rel="bookmark" class="td-image-wrap " title="Rétrotechtaculaire : TOPS gère le British Railroad des années 1970" ><img width="218" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/03/Retrotechtaculaire-TOPS-gere-le-British-Railroad-des-annees-1970-218x150.png" srcset="https://10-raisons.fr/wp-content/uploads/2024/03/Retrotechtaculaire-TOPS-gere-le-British-Railroad-des-annees-1970-218x150.png 218w, https://10-raisons.fr/wp-content/uploads/2024/03/Retrotechtaculaire-TOPS-gere-le-British-Railroad-des-annees-1970-100x70.png 100w" sizes="(max-width: 218px) 100vw, 218px" alt="" title="Rétrotechtaculaire : TOPS gère le British Railroad des années 1970" /></a></div> </div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/retrotechtaculaire-tops-gere-le-british-railroad-des-annees-1970/" rel="bookmark" title="Rétrotechtaculaire : TOPS gère le British Railroad des années 1970">Rétrotechtaculaire : TOPS gère le British Railroad des années 1970</a></span> </div> </div> </div> <!-- ./td-related-span4 --></div><!--./row-fluid--></div><div class="td-next-prev-wrap"><a href="#" class="td-ajax-prev-page ajax-page-disabled" aria-label="prev-page" id="prev-page-tdi_31" data-td_block_id="tdi_31"><i class="td-next-prev-icon td-icon-font td-icon-menu-left"></i></a><a href="#" class="td-ajax-next-page" aria-label="next-page" id="next-page-tdi_31" data-td_block_id="tdi_31"><i class="td-next-prev-icon td-icon-font td-icon-menu-right"></i></a></div></div> <!-- ./block --> </div> </div> <div class="td-pb-span4 td-main-sidebar" role="complementary"> <div class="td-ss-main-sidebar"> <aside class="td_block_template_1 widget widget_categories"><div class="block-title"><span>Catégories</span></div><form action="https://10-raisons.fr" method="get"><label class="screen-reader-text" for="cat">Catégories</label><select name='cat' id='cat' class='postform'> <option value='-1'>Sélectionner une catégorie</option> <option class="level-0" value="3">Actualités</option> <option class="level-1" value="23">   Economie / Finance</option> <option class="level-1" value="37">   People</option> <option class="level-1" value="4">   Politique</option> <option class="level-0" value="5">Amour</option> <option class="level-0" value="19">Avis / Shopping</option> <option class="level-0" value="41">Culture</option> <option class="level-1" value="7">   Art / Design</option> <option class="level-1" value="11">   Cinéma / Séries / TV</option> <option class="level-1" value="26">   Histoire</option> <option class="level-1" value="33">   Jeux vidéo</option> <option class="level-1" value="42">   Livres / BD / Presse</option> <option class="level-1" value="14">   Musique</option> <option class="level-0" value="1">Facktualité</option> <option class="level-0" value="13">High-tech</option> <option class="level-0" value="36">Insolite</option> <option class="level-0" value="32">Internet</option> <option class="level-0" value="34">Lifestyle</option> <option class="level-1" value="8">   Auto / Moto</option> <option class="level-1" value="16">   Cuisine / Gastronomie</option> <option class="level-1" value="879">   Maison / Jardin</option> <option class="level-1" value="35">   Mode / Beauté</option> <option class="level-1" value="20">   Sport</option> <option class="level-1" value="9">   Travail / Emploi</option> <option class="level-1" value="40">   Voyages</option> <option class="level-0" value="38">Santé</option> </select> </form><script type="text/javascript"> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "cat" ); function onCatChange() { if ( dropdown.options[ dropdown.selectedIndex ].value > 0 ) { dropdown.parentNode.submit(); } } dropdown.onchange = onCatChange; })(); /* ]]> */ </script> </aside><div class="td_block_wrap td_block_21 td_block_widget tdi_34 td-pb-border-top td_block_template_1 td-column-1" data-td-block-uid="tdi_34" > <style></style> <style></style><script>var block_tdi_34 = new tdBlock(); block_tdi_34.id = "tdi_34"; block_tdi_34.atts = '{"custom_title":"Articles r\u00e9cents","custom_url":"","block_template_id":"","header_color":"#","header_text_color":"#","accent_text_color":"#","m16_tl":"","m16_el":"","limit":"5","offset":"","el_class":"","post_ids":"-10812,-3172","category_id":"","category_ids":"-1","tag_slug":"","autors_id":"","installed_post_types":"","sort":"","td_ajax_filter_type":"","td_ajax_filter_ids":"","td_filter_default_txt":"All","td_ajax_preloading":"","ajax_pagination":"","ajax_pagination_infinite_stop":"","class":"td_block_widget tdi_34","block_type":"td_block_21","separator":"","taxonomies":"","in_all_terms":"","include_cf_posts":"","exclude_cf_posts":"","popular_by_date":"","linked_posts":"","favourite_only":"","open_in_new_window":"","show_modified_date":"","time_ago":"","time_ago_add_txt":"ago","time_ago_txt_pos":"","review_source":"","f_header_font_header":"","f_header_font_title":"Block header","f_header_font_settings":"","f_header_font_family":"","f_header_font_size":"","f_header_font_line_height":"","f_header_font_style":"","f_header_font_weight":"","f_header_font_transform":"","f_header_font_spacing":"","f_header_":"","f_ajax_font_title":"Ajax categories","f_ajax_font_settings":"","f_ajax_font_family":"","f_ajax_font_size":"","f_ajax_font_line_height":"","f_ajax_font_style":"","f_ajax_font_weight":"","f_ajax_font_transform":"","f_ajax_font_spacing":"","f_ajax_":"","f_more_font_title":"Load more button","f_more_font_settings":"","f_more_font_family":"","f_more_font_size":"","f_more_font_line_height":"","f_more_font_style":"","f_more_font_weight":"","f_more_font_transform":"","f_more_font_spacing":"","f_more_":"","m16f_title_font_header":"","m16f_title_font_title":"Article title","m16f_title_font_settings":"","m16f_title_font_family":"","m16f_title_font_size":"","m16f_title_font_line_height":"","m16f_title_font_style":"","m16f_title_font_weight":"","m16f_title_font_transform":"","m16f_title_font_spacing":"","m16f_title_":"","m16f_cat_font_title":"Article category tag","m16f_cat_font_settings":"","m16f_cat_font_family":"","m16f_cat_font_size":"","m16f_cat_font_line_height":"","m16f_cat_font_style":"","m16f_cat_font_weight":"","m16f_cat_font_transform":"","m16f_cat_font_spacing":"","m16f_cat_":"","m16f_meta_font_title":"Article meta info","m16f_meta_font_settings":"","m16f_meta_font_family":"","m16f_meta_font_size":"","m16f_meta_font_line_height":"","m16f_meta_font_style":"","m16f_meta_font_weight":"","m16f_meta_font_transform":"","m16f_meta_font_spacing":"","m16f_meta_":"","m16f_ex_font_title":"Article excerpt","m16f_ex_font_settings":"","m16f_ex_font_family":"","m16f_ex_font_size":"","m16f_ex_font_line_height":"","m16f_ex_font_style":"","m16f_ex_font_weight":"","m16f_ex_font_transform":"","m16f_ex_font_spacing":"","m16f_ex_":"","ajax_pagination_next_prev_swipe":"","css":"","tdc_css":"","td_column_number":1,"color_preset":"","border_top":"","tdc_css_class":"tdi_34","tdc_css_class_style":"tdi_34_rand_style"}'; block_tdi_34.td_column_number = "1"; block_tdi_34.block_type = "td_block_21"; block_tdi_34.post_count = "5"; block_tdi_34.found_posts = "622"; block_tdi_34.header_color = "#"; block_tdi_34.ajax_pagination_infinite_stop = ""; block_tdi_34.max_num_pages = "125"; tdBlocksArray.push(block_tdi_34); </script><div class="td-block-title-wrap"><span class="block-title td-block-title"><span class="td-pulldown-size">Articles récents</span></span></div><div id=tdi_34 class="td_block_inner"> <div class="td_module_16 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://10-raisons.fr/10-raisons-de-prendre-un-bagage-cabine-en-avion-plutot-quen-soute/" rel="bookmark" class="td-image-wrap " title="10 raisons de prendre un bagage cabine en avion plutôt qu’en soute" ><img width="150" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/03/10-raisons-de-prendre-un-bagage-cabine-en-avion-plutot-quen-soute-150x150.jpeg" alt="10 raisons de prendre un bagage cabine en avion plutôt qu'en soute" title="10 raisons de prendre un bagage cabine en avion plutôt qu’en soute" /></a></div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/10-raisons-de-prendre-un-bagage-cabine-en-avion-plutot-quen-soute/" rel="bookmark" title="10 raisons de prendre un bagage cabine en avion plutôt qu’en soute">10 raisons de prendre un bagage cabine en avion plutôt qu’en soute</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-03-29T03:52:13+01:00" >29 mars 2024</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/10-raisons-de-prendre-un-bagage-cabine-en-avion-plutot-quen-soute/#respond">0</a></span> </div> <div class="td-excerpt"> Que vous soyez un voyageur fréquent ou occasionnel, le choix du bagage est une étape importante pour assurer la réussite de votre séjour. Le... </div> </div> </div> <div class="td_module_16 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://10-raisons.fr/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite/" rel="bookmark" class="td-image-wrap " title="10 raisons de préférer la personnalisation de vos cartes de visite" ><img width="150" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/02/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite-150x150.jpg" srcset="https://10-raisons.fr/wp-content/uploads/2024/02/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite-150x150.jpg 150w, https://10-raisons.fr/wp-content/uploads/2024/02/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite-300x300.jpg 300w, https://10-raisons.fr/wp-content/uploads/2024/02/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite-420x420.jpg 420w, https://10-raisons.fr/wp-content/uploads/2024/02/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite.jpg 568w" sizes="(max-width: 150px) 100vw, 150px" alt="10 raisons de préférer la personnalisation de vos cartes de visite" title="10 raisons de préférer la personnalisation de vos cartes de visite" /></a></div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite/" rel="bookmark" title="10 raisons de préférer la personnalisation de vos cartes de visite">10 raisons de préférer la personnalisation de vos cartes de visite</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-02-06T16:15:47+01:00" >6 février 2024</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/10-raisons-de-preferer-la-personnalisation-de-vos-cartes-de-visite/#respond">0</a></span> </div> <div class="td-excerpt"> Les cartes de visite restent un outil de networking incontournable pour tout professionnel ou entrepreneur. Alors que la tendance est à la dématérialisation, elles... </div> </div> </div> <div class="td_module_16 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://10-raisons.fr/10-raisons-de-jouer-a-penalty-shootout/" rel="bookmark" class="td-image-wrap " title="10 raisons de jouer à Penalty Shootout" ><img width="150" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/01/10-raisons-de-jouer-a-Penalty-Shootout-150x150.jpeg" alt="10 raisons de jouer à Penalty Shootout" title="10 raisons de jouer à Penalty Shootout" /></a></div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/10-raisons-de-jouer-a-penalty-shootout/" rel="bookmark" title="10 raisons de jouer à Penalty Shootout">10 raisons de jouer à Penalty Shootout</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-01-19T14:38:17+01:00" >19 janvier 2024</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/10-raisons-de-jouer-a-penalty-shootout/#respond">0</a></span> </div> <div class="td-excerpt"> Le Penalty Shootout est un jeu en ligne passionnant qui procure l’excitation des tirs au but du football de façon directe sur votre écran.... </div> </div> </div> <div class="td_module_16 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://10-raisons.fr/10-raisons-dentretenir-son-vehicule-regulierement/" rel="bookmark" class="td-image-wrap " title="10 raisons d’entretenir son véhicule régulièrement" ><img width="150" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2024/01/134764changement-de-plaquette-de-frein122b9d-150x150.png" alt="10 raisons d'entretenir son véhicule régulièrement" title="10 raisons d’entretenir son véhicule régulièrement" /></a></div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/10-raisons-dentretenir-son-vehicule-regulierement/" rel="bookmark" title="10 raisons d’entretenir son véhicule régulièrement">10 raisons d’entretenir son véhicule régulièrement</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2024-01-19T10:58:50+01:00" >19 janvier 2024</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/10-raisons-dentretenir-son-vehicule-regulierement/#respond">0</a></span> </div> <div class="td-excerpt"> Remplacement des pièces d'usure, contrôle des pneumatiques, vérification des fluides… De nombreuses étapes doivent être réalisées pour parfaire l'entretien de son véhicule. Mais pourquoi... </div> </div> </div> <div class="td_module_16 td_module_wrap td-animation-stack"> <div class="td-module-thumb"><a href="https://10-raisons.fr/10-raisons-de-sinscrire-a-un-cours-de-digital-art/" rel="bookmark" class="td-image-wrap " title="10 raisons de s’inscrire à un cours de Digital Art" ><img width="150" height="150" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2023/12/10-raisons-de-sinscrire-a-un-cours-de-Digital-Art-150x150.jpg" alt="10 raisons de s'inscrire à un cours de Digital Art" title="10 raisons de s’inscrire à un cours de Digital Art" /></a></div> <div class="item-details"> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/10-raisons-de-sinscrire-a-un-cours-de-digital-art/" rel="bookmark" title="10 raisons de s’inscrire à un cours de Digital Art">10 raisons de s’inscrire à un cours de Digital Art</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2023-12-26T02:13:35+01:00" >26 décembre 2023</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/10-raisons-de-sinscrire-a-un-cours-de-digital-art/#respond">0</a></span> </div> <div class="td-excerpt"> Le Digital Art est l’équivalent en numérique de l’art traditionnel. Ce terme inclut le dessin, la composition, la peinture, voire la sculpture / modélisation... </div> </div> </div> </div></div> <!-- ./block --><div class="td_block_wrap td_block_social_counter td_block_widget tdi_35 td-pb-border-top td_block_template_1"> <style></style> <style>.td_block_social_counter{font-family:'Open Sans',arial,sans-serif;font-weight:bold;font-size:11px;color:#fff;margin-bottom:47px}.td_block_social_counter .td-sp{position:relative}.td_block_social_counter .td-sp:after{content:'';width:1px;height:16px;background-color:rgba(255,255,255,0.1);position:absolute;right:-1px;top:8px}.td-social-list{*zoom:1}.td-social-list:before,.td-social-list:after{display:table;content:'';line-height:0}.td-social-list:after{clear:both}.td_social_type{width:100%;margin-bottom:10px;-webkit-transition:background-color 0.20s cubic-bezier(0,0,0.58,1) 0s;transition:background-color 0.20s cubic-bezier(0,0,0.58,1) 0s}.td_social_type:last-child{margin-bottom:0}.td_social_type:hover .td-social-box{background-color:#222}.td_social_type .td_social_info{padding:0 0 0 9px;position:relative;top:-12px}.td_social_type .td-social-box{height:32px;position:relative;overflow:hidden}.td_social_type .td-social-box .td-sp{display:inline-block}.td_social_type .td_social_number{border-left:1px solid rgba(255,255,255,0.1);padding-left:9px}.td_social_type .td_social_button{float:right;border-left:1px solid rgba(255,255,255,0.1);padding:0 14px;margin-top:8px;top:9px;height:16px;line-height:15px;text-transform:uppercase}.td_social_type .td_social_button a{color:#fff}.td_social_type .td_social_button a:after{content:'';display:block;height:32px;position:absolute;right:0;top:0;width:324px}.td_social_type .td_social_button a:hover{color:inherit;text-decoration:none!important}.td_social_type a{color:#fff}.td_social_facebook .td-social-box{background-color:#516eab}.td_social_rss .td-social-box{background-color:#ff6600}.td_social_soundcloud .td-social-box{background-color:#ff5419}.td_social_twitter .td-social-box{background-color:#29c5f6}.td_social_vimeo .td-social-box{background-color:#006599}.td_social_youtube .td-social-box{background-color:#e14e42}.td_social_instagram .td-social-box{background-color:#417096}.td_social_pinterest .td-social-box{background-color:#ca212a}.td_social_tiktok .td-social-box{background-color:#009191}.td_social_twitch .td-social-box{background-color:#9147FF}.td_social_steam .td-social-box{background-color:#c7d5e0}.td-social-boxed .td_social_type{text-align:center;width:33.3333%;margin:0;float:left}.td-social-boxed .td_social_type .td-social-box{height:100px}.td-social-boxed .td_social_type span{display:block;width:100%;padding:0}.td-social-boxed .td-sp{margin-top:10px}.td-social-boxed .td-sp::after{display:none}.td-social-boxed .td_social_info{font-size:17px;top:0}.td-social-boxed .td_social_info_name{font-size:13px;font-weight:normal}.td-social-boxed .td_social_button{opacity:0;position:absolute;height:100%;margin-top:0;top:0}.td-social-boxed .td_social_button a:after{width:100%;height:100%}.td-social-colored .td_social_facebook .td-sp{background-color:#516eab}.td-social-colored .td_social_rss .td-sp{background-color:#ff6600}.td-social-colored .td_social_soundcloud .td-sp{background-color:#ff5419}.td-social-colored .td_social_twitter .td-sp{background-color:#29c5f6}.td-social-colored .td_social_vimeo .td-sp{background-color:#006599}.td-social-colored .td_social_youtube .td-sp{background-color:#e14e42}.td-social-colored .td_social_instagram .td-sp{background-color:#417096}.td-social-colored .td_social_pinterest .td-sp{background-color:#ca212a}.td-social-colored .td_social_tiktok .td-sp{background-color:#009191}.td-social-colored .td_social_twitch .td-sp{background-color:#9147FF}.td-social-colored .td_social_steam .td-sp{background-color:#c7d5e0}.td-social-font-icons .td-sp{background:none;font-family:'newspaper',sans-serif;font-size:14px;text-align:center;font-weight:normal}.td-social-font-icons .td-sp:before{position:absolute;top:0;left:0;right:0;line-height:30px}.td-social-font-icons .td_social_facebook .td-sp:before{content:'\e818';color:#516eab}.td-social-font-icons .td_social_rss .td-sp:before{content:'\e828';color:#ff6600}.td-social-font-icons .td_social_soundcloud .td-sp:before{content:'\e82b';color:#ff5419}.td-social-font-icons .td_social_twitter .td-sp:before{content:'\e831';color:#000}.td-social-font-icons .td_social_vimeo .td-sp:before{content:'\e832';color:#006599}.td-social-font-icons .td_social_youtube .td-sp:before{content:'\e836';color:#e14e42}.td-social-font-icons .td_social_instagram .td-sp:before{content:'\e81d';color:#417096}.td-social-font-icons .td_social_pinterest .td-sp:before{content:'\e825';color:#ca212a}.td-social-font-icons .td_social_tiktok .td-sp:before{content:'\e9d6';color:#009191}.td-social-font-icons .td_social_twitch .td-sp:before{content:'\e909';color:#9147FF}.td-social-font-icons .td_social_steam .td-sp:before{content:'\e939';color:#1b2838}@media (min-width:1019px) and (max-width:1140px){.td_social_type .td_social_button a:after{width:300px}}@media (min-width:768px) and (max-width:1018px){.td_social_type .td_social_button a:after{width:228px}}@media (max-width:767px){.td_social_type .td_social_button a:after{width:100%}}@media (min-width:768px) and (max-width:1018px){.td-social-boxed .td_social_type .td-social-box{height:70px}}@media (min-width:768px) and (max-width:1018px){.td-social-boxed .td-sp{margin-top:4px}}@media (min-width:768px) and (max-width:1018px){.td-social-boxed .td_social_info{font-size:13px;top:-12px}}@media (min-width:768px) and (max-width:1018px){.td-social-boxed .td_social_info_name{top:-17px;font-size:10px}}</style><div class="td-block-title-wrap"><span class="block-title td-block-title"><span class="td-pulldown-size">Réseaux sociaux</span></span></div><div class="td-social-list"><div class="td_social_type td-pb-margin-side td_social_facebook"><div class="td-social-box"><div class="td-sp td-sp-facebook"></div><span class="td_social_info td_social_info_counter">513</span><span class="td_social_info td_social_info_name">Fans</span><span class="td_social_button"><a href="https://www.facebook.com/10Raisons.fr" target="_blank"rel="nofollow" >J'aime</a></span></div></div><div class="td_social_type td-pb-margin-side td_social_instagram"><div class="td-social-box"><div class="td-sp td-sp-instagram"></div><span class="td_social_info td_social_info_counter">276</span><span class="td_social_info td_social_info_name">Followers</span><span class="td_social_button"><a href="https://instagram.com/10raisonsfr#" target="_blank"rel="nofollow" >Suivre</a></span></div></div><div class="td_social_type td-pb-margin-side td_social_twitter"><div class="td-social-box"><div class="td-sp td-sp-twitter"></div><span class="td_social_info td_social_info_counter">263</span><span class="td_social_info td_social_info_name">Followers</span><span class="td_social_button"><a href="https://twitter.com/10_Raisons" target="_blank"rel="nofollow" >Suivre</a></span></div></div></div></div> <!-- ./block --> </div> </div> </div> <!-- /.td-pb-row --> </div> <!-- /.td-container --> </div> <!-- /.td-main-content-wrap --> <div class="tdc-footer-wrap "> <!-- Footer --> <div class="td-footer-wrapper td-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span12"> </div> </div> <div class="td-pb-row"> <div class="td-pb-span12"> <aside class="td_block_template_1 widget widget_tag_cloud"><div class="block-title"><span>CATÉGORIES</span></div><div class="tagcloud"><a href="https://10-raisons.fr/actualites/" class="tag-cloud-link tag-link-3 tag-link-position-1" style="font-size: 13.046511627907pt;" aria-label="Actualités (75 éléments)">Actualités</a> <a href="https://10-raisons.fr/amour/" class="tag-cloud-link tag-link-5 tag-link-position-2" style="font-size: 11.31007751938pt;" aria-label="Amour (35 éléments)">Amour</a> <a href="https://10-raisons.fr/culture/art/" class="tag-cloud-link tag-link-7 tag-link-position-3" style="font-size: 9.8992248062016pt;" aria-label="Art / Design (19 éléments)">Art / Design</a> <a href="https://10-raisons.fr/lifestyle/automoto/" class="tag-cloud-link tag-link-8 tag-link-position-4" style="font-size: 10.604651162791pt;" aria-label="Auto / Moto (26 éléments)">Auto / Moto</a> <a href="https://10-raisons.fr/avis/" class="tag-cloud-link tag-link-19 tag-link-position-5" style="font-size: 14.131782945736pt;" aria-label="Avis / Shopping (119 éléments)">Avis / Shopping</a> <a href="https://10-raisons.fr/culture/cinema-tv/" class="tag-cloud-link tag-link-11 tag-link-position-6" style="font-size: 11.038759689922pt;" aria-label="Cinéma / Séries / TV (31 éléments)">Cinéma / Séries / TV</a> <a href="https://10-raisons.fr/lifestyle/cuisine/" class="tag-cloud-link tag-link-16 tag-link-position-7" style="font-size: 12.395348837209pt;" aria-label="Cuisine / Gastronomie (56 éléments)">Cuisine / Gastronomie</a> <a href="https://10-raisons.fr/culture/" class="tag-cloud-link tag-link-41 tag-link-position-8" style="font-size: 13.426356589147pt;" aria-label="Culture (89 éléments)">Culture</a> <a href="https://10-raisons.fr/actualites/economie/" class="tag-cloud-link tag-link-23 tag-link-position-9" style="font-size: 12.558139534884pt;" aria-label="Economie / Finance (61 éléments)">Economie / Finance</a> <a href="https://10-raisons.fr/non-classe/" class="tag-cloud-link tag-link-1 tag-link-position-10" style="font-size: 22pt;" aria-label="Facktualité (3 384 éléments)">Facktualité</a> <a href="https://10-raisons.fr/hightech/" class="tag-cloud-link tag-link-13 tag-link-position-11" style="font-size: 12.124031007752pt;" aria-label="High-tech (50 éléments)">High-tech</a> <a href="https://10-raisons.fr/culture/histoire/" class="tag-cloud-link tag-link-26 tag-link-position-12" style="font-size: 9.6821705426357pt;" aria-label="Histoire (17 éléments)">Histoire</a> <a href="https://10-raisons.fr/insolite/" class="tag-cloud-link tag-link-36 tag-link-position-13" style="font-size: 10.713178294574pt;" aria-label="Insolite (27 éléments)">Insolite</a> <a href="https://10-raisons.fr/internet/" class="tag-cloud-link tag-link-32 tag-link-position-14" style="font-size: 11.852713178295pt;" aria-label="Internet (45 éléments)">Internet</a> <a href="https://10-raisons.fr/culture/gaming/" class="tag-cloud-link tag-link-33 tag-link-position-15" style="font-size: 8.4883720930233pt;" aria-label="Jeux vidéo (10 éléments)">Jeux vidéo</a> <a href="https://10-raisons.fr/lifestyle/" class="tag-cloud-link tag-link-34 tag-link-position-16" style="font-size: 14.728682170543pt;" aria-label="Lifestyle (154 éléments)">Lifestyle</a> <a href="https://10-raisons.fr/culture/livres/" class="tag-cloud-link tag-link-42 tag-link-position-17" style="font-size: 8pt;" aria-label="Livres / BD / Presse (8 éléments)">Livres / BD / Presse</a> <a href="https://10-raisons.fr/lifestyle/maison/" class="tag-cloud-link tag-link-879 tag-link-position-18" style="font-size: 10.22480620155pt;" aria-label="Maison / Jardin (22 éléments)">Maison / Jardin</a> <a href="https://10-raisons.fr/lifestyle/mode/" class="tag-cloud-link tag-link-35 tag-link-position-19" style="font-size: 11.147286821705pt;" aria-label="Mode / Beauté (33 éléments)">Mode / Beauté</a> <a href="https://10-raisons.fr/culture/musique/" class="tag-cloud-link tag-link-14 tag-link-position-20" style="font-size: 9.5193798449612pt;" aria-label="Musique (16 éléments)">Musique</a> <a href="https://10-raisons.fr/actualites/people/" class="tag-cloud-link tag-link-37 tag-link-position-21" style="font-size: 9.5193798449612pt;" aria-label="People (16 éléments)">People</a> <a href="https://10-raisons.fr/actualites/politique/" class="tag-cloud-link tag-link-4 tag-link-position-22" style="font-size: 9.5193798449612pt;" aria-label="Politique (16 éléments)">Politique</a> <a href="https://10-raisons.fr/sante/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 13.046511627907pt;" aria-label="Santé (75 éléments)">Santé</a> <a href="https://10-raisons.fr/lifestyle/sport/" class="tag-cloud-link tag-link-20 tag-link-position-24" style="font-size: 11.472868217054pt;" aria-label="Sport (38 éléments)">Sport</a> <a href="https://10-raisons.fr/lifestyle/travail/" class="tag-cloud-link tag-link-9 tag-link-position-25" style="font-size: 13.263565891473pt;" aria-label="Travail / Emploi (83 éléments)">Travail / Emploi</a> <a href="https://10-raisons.fr/lifestyle/voyages/" class="tag-cloud-link tag-link-40 tag-link-position-26" style="font-size: 13.100775193798pt;" aria-label="Voyages (76 éléments)">Voyages</a></div> </aside> </div> </div> </div> <div class="td-footer-bottom-full"> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span3"><aside class="footer-logo-wrap"><a href="https://10-raisons.fr/"><img class="td-retina-data" src="https://10-raisons.fr/wp-content/uploads/2020/02/logo-e1581130995254-300x218.png" data-retina="https://10-raisons.fr/wp-content/uploads/2020/02/logo-e1581130995254-300x218.png" alt="10 Raisons" title="10 Raisons" width="" height="" /></a></aside></div><div class="td-pb-span5"><aside class="footer-text-wrap"><div class="block-title"><span>À PROPOS</span></div><p>10 Raisons est un site internet d'actualités en français, vous apportant tous les jours votre dose de bonnes raisons !</p> <p>Nous sommes avant tout un groupe de 4 amis étudiants en journalisme, et passionnés d'écriture. Nous avons voulu tirer profit de notre temps libre et commencer un projet tous ensemble, celui de vous proposer chaque jour 10 raisons de... tout et n'importe quoi !</p></aside></div><div class="td-pb-span4"><aside class="footer-social-wrap td-social-style-2"><div class="block-title"><span>SUIVEZ-NOUS</span></div> <span class="td-social-icon-wrap"> <a target="_blank" rel="nofollow" href="https://www.facebook.com/10Raisons.fr" title="Facebook"> <i class="td-icon-font td-icon-facebook"></i> <span style="display: none">Facebook</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" rel="nofollow" href="https://www.instagram.com/10raisonsfr/" title="Instagram"> <i class="td-icon-font td-icon-instagram"></i> <span style="display: none">Instagram</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" rel="nofollow" href="https://10-raisons.fr/feed/" title="RSS"> <i class="td-icon-font td-icon-rss"></i> <span style="display: none">RSS</span> </a> </span> <span class="td-social-icon-wrap"> <a target="_blank" rel="nofollow" href="https://twitter.com/10_Raisons" title="Twitter"> <i class="td-icon-font td-icon-twitter"></i> <span style="display: none">Twitter</span> </a> </span></aside></div> </div> </div> </div> </div> <!-- Sub Footer --> <div class="td-sub-footer-container td-container-wrap "> <div class="td-container"> <div class="td-pb-row"> <div class="td-pb-span td-sub-footer-menu"> <div class="menu-td-demo-footer-menu-container"><ul id="menu-td-demo-footer-menu" class="td-subfooter-menu"><li id="menu-item-237" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-first td-menu-item td-normal-menu menu-item-237"><a rel="nofollow" href="https://10-raisons.fr/">Accueil</a></li> <li id="menu-item-238" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy td-menu-item td-normal-menu menu-item-238"><a rel="nofollow privacy-policy" href="https://10-raisons.fr/mentions-legales/">Mentions légales</a></li> <li id="menu-item-244" class="menu-item menu-item-type-post_type menu-item-object-page td-menu-item td-normal-menu menu-item-244"><a rel="nofollow" href="https://10-raisons.fr/contact/">Contactez-nous</a></li> </ul></div> </div> <div class="td-pb-span td-sub-footer-copy"> © © 2024 <a href="https://10-raisons.fr">10 Raisons</a> par <a href="https://10-raisons.fr/tremplin-numerique/">Tremplin Numérique</a> </div> </div> </div> </div> </div><!--close td-footer-wrap--> </div><!--close td-outer-wrap--> <div class="td-more-articles-box"> <i class="td-icon-close td-close-more-articles-box"></i> <span class="td-more-articles-box-title">PLUS D'ARTICLES</span> <div class="td-content-more-articles-box"> <div class="td_module_1 td_module_wrap td-animation-stack"> <div class="td-module-image"> <div class="td-module-thumb"><a href="https://10-raisons.fr/sonos-sub-mini-review-tout-sur-cette-basse/" rel="bookmark" class="td-image-wrap " title="Sonos Sub Mini Review : Tout sur cette basse" ><img width="324" height="160" class="entry-thumb" src="https://10-raisons.fr/wp-content/uploads/2022/12/Sonos-Sub-Mini-Review-Tout-sur-cette-basse-324x160.jpg" srcset="https://10-raisons.fr/wp-content/uploads/2022/12/Sonos-Sub-Mini-Review-Tout-sur-cette-basse-324x160.jpg 324w, https://10-raisons.fr/wp-content/uploads/2022/12/Sonos-Sub-Mini-Review-Tout-sur-cette-basse-533x261.jpg 533w" sizes="(max-width: 324px) 100vw, 324px" alt="" title="Sonos Sub Mini Review : Tout sur cette basse" /></a></div> </div> <span style="font-weight: 500; font-size: 13px; line-height: 18px;" class="entry-title td-module-title"><a style="margin-top: 5px; color: #333; display: block; -webkit-transition: color 0.4s; transition: color 0.4s;" href="https://10-raisons.fr/sonos-sub-mini-review-tout-sur-cette-basse/" rel="bookmark" title="Sonos Sub Mini Review : Tout sur cette basse">Sonos Sub Mini Review : Tout sur cette basse</a></span> <div class="td-module-meta-info"> <span class="td-post-date"><time class="entry-date updated td-module-date" datetime="2022-12-03T16:34:35+01:00" >3 décembre 2022</time></span> <span class="td-module-comments"><a href="https://10-raisons.fr/sonos-sub-mini-review-tout-sur-cette-basse/#respond">0</a></span> </div> </div> </div> </div> <!-- Theme: Newspaper by tagDiv.com 2024 Version: 12.6.4 (rara) Deploy mode: deploy uid: 6606b9f7b5ca9 --> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=5.9.3" id="swv-js"></script> <script type="text/javascript" id="contact-form-7-js-extra"> /* <![CDATA[ */ var wpcf7 = {"api":{"root":"https:\/\/10-raisons.fr\/wp-json\/","namespace":"contact-form-7\/v1"},"cached":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.9.3" id="contact-form-7-js"></script> <script type="text/javascript" id="kk-star-ratings-js-extra"> /* <![CDATA[ */ var kk_star_ratings = {"action":"kk-star-ratings","endpoint":"https:\/\/10-raisons.fr\/wp-admin\/admin-ajax.php","nonce":"76224be597"}; /* ]]> */ </script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/kk-star-ratings/src/core/public/js/kk-star-ratings.min.js?ver=5.4.7" id="kk-star-ratings-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-includes/js/underscore.min.js?ver=1.13.4" id="underscore-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-cloud-library/assets/js/js_posts_autoload.min.js?ver=9e24474348f1755e0ebe145b87be714d" id="tdb_js_posts_autoload-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tagdiv_theme.min.js?ver=12.6.4" id="td-site-min-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdPostImages.js?ver=12.6.4" id="tdPostImages-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdSocialSharing.js?ver=12.6.4" id="tdSocialSharing-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdModalPostImages.js?ver=12.6.4" id="tdModalPostImages-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-cloud-library/assets/js/js_files_for_front.min.js?ver=9e24474348f1755e0ebe145b87be714d" id="tdb_js_files_for_front-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdLoadingBox.js?ver=12.6.4" id="tdLoadingBox-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdDatei18n.js?ver=12.6.4" id="tdDatei18n-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdAnimationSprite.js?ver=12.6.4" id="tdAnimationSprite-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdWeather.js?ver=12.6.4" id="tdWeather-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdAjaxSearch.js?ver=12.6.4" id="tdAjaxSearch-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdLogin.js?ver=12.6.4" id="tdLogin-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdInfiniteLoader.js?ver=12.6.4" id="tdInfiniteLoader-js"></script> <script type="text/javascript" src="https://10-raisons.fr/wp-content/plugins/td-composer/legacy/Newspaper/js/tdMenu.js?ver=12.6.4" id="tdMenu-js"></script> <!-- JS generated by theme --> <script> jQuery().ready(function () { tdWeather.addItem({"block_uid":"td_top_weather_uid","location":"Paris","api_location":"Paris","api_language":"fr","api_key":"588d5c65a14ff534709e8bacfbc87057","today_icon":"broken-clouds-d","today_icon_text":"couvert","today_temp":[12.3,54.2],"today_humidity":78,"today_wind_speed":[6.7,4.2],"today_min":[11.3,52.4],"today_max":[13.4,56.1],"today_clouds":100,"current_unit":0,"forecast":[{"timestamp":1711713600,"day_name":"ven","day_temp":[14,57],"owm_day_index":0},{"timestamp":1711756800,"day_name":"sam","day_temp":[11,51],"owm_day_index":4},{"timestamp":1711843200,"day_name":"dim","day_temp":[15,60],"owm_day_index":12},{"timestamp":1711929600,"day_name":"lun","day_temp":[11,52],"owm_day_index":20},{"timestamp":1712016000,"day_name":"mar","day_temp":[13,55],"owm_day_index":28}]}); }); </script> <script>var td_res_context_registered_atts=[];</script> </body> </html> <!-- Dynamic page generated in 1.368 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2024-03-29 13:54:15 --> <!-- super cache -->