<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ventoux on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</title>
    <link>https://move.cyber-neurones.org/tags/ventoux/</link>
    <description>Recent content in Ventoux on Blog GoHugo de Fredô : Linux, Proxmox, IA, Trail, Course, Randonnée, Gravel, Ski de Randonnée</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Mon, 08 May 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://move.cyber-neurones.org/tags/ventoux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ventoux Gravel Trans Massifs : Dentelles &amp; Sommets (Edition 2023)</title>
      <link>https://move.cyber-neurones.org/post/2023/05/2023-05-08-ventoux-gravel-trans-massifs-edition-2023/</link>
      <pubDate>Mon, 08 May 2023 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2023/05/2023-05-08-ventoux-gravel-trans-massifs-edition-2023/</guid>
      <description>&lt;p&gt;Site de l&amp;rsquo;organisation : &lt;a href=&#34;https://www.grande-evasion-trans-massifs.fr/&#34;&gt;https://www.grande-evasion-trans-massifs.fr/&lt;/a&gt; , la course de 110 km : &lt;a href=&#34;https://www.grande-evasion-trans-massifs.fr/parcours/dentelles-et-sommet.html&#34;&gt;https://www.grande-evasion-trans-massifs.fr/parcours/dentelles-et-sommet.html&lt;/a&gt; .&lt;/p&gt;&#xA;&lt;p&gt;Voici le parcours :&lt;/p&gt;&#xA;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.css&#34; crossorigin=&#34;&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/style.css&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.css&#34; /&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet.geometryutil.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://cdnjs.cloudflare.com/ajax/libs/leaflet-gpx/1.7.0/gpx.min.js&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;section id=&#34;container&#34; class=&#34;gpx&#34;&gt;&#xA;  &lt;div class=&#34;map&#34; id=&#34;map-&#34;&gt;&lt;/div&gt;&#xA;  &lt;footer&gt;&#xA;    &#xA;    &#xA;    &#xA;      &lt;ul class=&#34;info&#34;&gt;&#xA;        &lt;li&gt;&lt;input type=&#34;checkbox&#34; checked class=&#34;tracks&#34; track-id=&#34;0&#34;/&gt;&lt;/li&gt;&#xA;        &lt;li style=&#34;color:blue&#34;&gt;&amp;#9632;&lt;/li&gt;&#xA;        &#xA;        &lt;li&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;start-VentouxGravel.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;distance-VentouxGravel.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;duration-VentouxGravel.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;elevation-VentouxGravel.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;VentouxGravel.gpx&#34;&gt;Download&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &#xA;  &lt;/footer&gt;&#xA;&lt;/section&gt;&#xA;&#xA;&lt;script&gt;&#xA;  var urls = new Array(&#34;VentouxGravel.gpx&#34;,)&#xA;  var mapid = &#34;map-&#34;;&#xA;  var container = document.getElementById(&#34;container&#34;);&#xA;  var colors = [&#34;blue&#34;,&#34;darkblue&#34;,&#34;purple&#34;];&#xA;  var layers = new Array();&#xA;    &#xA;  &#xA;  var map = L.map(mapid, { fullscreenControl: true, scrollWheelZoom: false });&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  createLayer(&#34;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#34;, &#34;© \u003ca href=\&#34;https://www.openstreetmap.org/copyright\&#34;\u003eOpenStreetMap\u003c/a\u003e contributors&#34;,  1 ,  20 ,  null ,  null ).addTo(map);&#xA;  &#xA;&#xA;  var control = L.control.layers(null, null).addTo(map);&#xA;  var bounds = null;&#xA;  urls.forEach(function(url, index) {&#xA;    addTrack(urls[index], index, map);&#xA;  });&#xA;  &#xA;  &#xA;  document.addEventListener(&#34;DOMContentLoaded&#34;, function(){&#xA;    &#xA;    &#xA;    Array.from(document.getElementsByClassName(&#34;location&#34;)).forEach(addMarker);&#xA;    &#xA;    &#xA;    document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;      item.checked = true;&#xA;    });&#xA;  });&#xA;  &#xA;  &#xA;  document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;    item.addEventListener(&#34;click&#34;, function() {&#xA;      var id = this.getAttribute(&#34;track-id&#34;);&#xA;      if (event.currentTarget.checked) {&#xA;        showTrack(id);&#xA;      } else {&#xA;        hideTrack(id);&#xA;      }&#xA;    })&#xA;  });&#xA;  &#xA;  &#xA;  function addTrack(url, index, map) {&#xA;    layers[index]=new L.GPX(url, {&#xA;      gpx_options: {&#xA;        joinTrackSegments: false&#xA;      },&#xA;      async: true,&#xA;      marker_options: {&#xA;        startIconUrl: &#34;/gpx-shortcode/pin-icon-start.png&#34;,&#xA;        endIconUrl: &#34;/gpx-shortcode/pin-icon-end.png&#34;,&#xA;        shadowUrl: &#34;/gpx-shortcode/pin-shadow.png&#34;,&#xA;      },&#xA;      &#xA;      polyline_options: {color: colors[index % colors.length], distanceMarkers: true, smoothFactor: 0.5 }&#xA;    }).on(&#34;loaded&#34;, function(e) {&#xA;      var gpx = e.target;&#xA;      if (bounds === null) {&#xA;        bounds = gpx.getBounds();&#xA;      }&#xA;      else&#xA;      {&#xA;        bounds.extend(gpx.getBounds());&#xA;      }&#xA;      map.fitBounds(bounds);&#xA;      control.addOverlay(gpx, gpx.get_name());&#xA;      addMetadata(gpx, url);&#xA;    });&#xA;    layers[index].addTo(map);&#xA;  }&#xA;  &#xA;  function showTrack(id) {&#xA;    layers[id].addTo(map);&#xA;  }&#xA;  &#xA;  function hideTrack(id) {&#xA;    layers[id].removeFrom(map);&#xA;  }&#xA;  &#xA;  &#xA;  function createLayer(url, attribution, minZoom, maxZoom, bounds, inverseBounds) {&#xA;    var layer = L.tileLayer(url, { attribution: attribution, minZoom: minZoom, maxZoom: maxZoom});&#xA;    if (bounds != null) {&#xA;      &#xA;      layer.options.bounds = new L.LatLngBounds(&#xA;        new L.LatLng(bounds[0], bounds[1]),&#xA;        new L.LatLng(bounds[2], bounds[3]));&#xA;    }&#xA;    if (inverseBounds != null) {&#xA;      layer.options.inverseBounds = new L.LatLngBounds(&#xA;        new L.LatLng(inverseBounds[0], inverseBounds[1]),&#xA;        new L.LatLng(inverseBounds[2], inverseBounds[3]));&#xA;    }&#xA;    return layer;&#xA;  }&#xA;&#xA;  &#xA;  function addMarker(link) {&#xA;    lat = link.getAttribute(&#34;lat&#34;);&#xA;    lon = link.getAttribute(&#34;lon&#34;);&#xA;    text = link.textContent;&#xA;    name = link.getAttribute(&#34;name&#34;);&#xA;    title = (name != &#34;&#34;) ? name : text;&#xA;    url = link.getAttribute(&#34;link&#34;);&#xA;    if (url != &#34;&#34;)&#xA;    {&#xA;      title = &#34;&lt;a target=\&#34;_blank\&#34; href=\&#34;&#34; + url + &#34;\&#34;&gt;&#34; + title + &#34;&lt;/a&gt;&#34;;&#xA;    }&#xA;    marker = L.marker([lat, lon]).addTo(map);&#xA;    marker.bindPopup(title).openPopup();&#xA;  }&#xA;  &#xA;  &#xA;  function addMetadata(gpx, url) {&#xA;    var date = gpx.get_start_time();&#xA;    var datestring = date.getFullYear() + &#34;-&#34; + (date.getMonth()+1).toString().padStart(2, &#34;0&#34;) + &#34;-&#34; + date.getDate().toString().padStart(2, &#34;0&#34;)  + &#34; &#34; + date.getHours().toString().padStart(2, &#34;0&#34;) + &#34;:&#34; + date.getMinutes().toString().padStart(2, &#34;0&#34;);&#xA;    _c(&#34;start-&#34; + url).textContent = (date &gt; 0) ? datestring : &#34;&#34;;&#xA;    _c(&#34;distance-&#34; + url).textContent = &#34;Distance: &#34; + (gpx.get_distance() / 1000).toFixed(2) + &#34; km&#34;;&#xA;    var duration = gpx.get_moving_time();&#xA;    _c(&#34;duration-&#34; + url).textContent = (duration &gt; 0) ? &#34;Duration: &#34; + gpx.get_duration_string(duration) : &#34;&#34;;&#xA;    _c(&#34;elevation-&#34;+ url).textContent = `Elevation: ${gpx.get_elevation_gain().toFixed(0)} m, -${gpx.get_elevation_loss().toFixed(0)} m, net:  ${(gpx.get_elevation_gain() - gpx.get_elevation_loss()).toFixed(0)}  m`;&#xA;  }&#xA;  &#xA;  &#xA;  function _c(c) {&#xA;    return container.getElementsByClassName(c)[0];&#xA;  }&#xA;&lt;/script&gt;&#xA;&#xA;&lt;p&gt;Pas facile de faire ce Ventoux, du km 50 au km 75 il faut bien avoir fait le plein d&amp;rsquo;eau. Mais aussi avoir un développement facile afin de ne pas poser pied à terre.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mémo pour Ventoux Gravel Tour 110 km (Edition 2023)</title>
      <link>https://move.cyber-neurones.org/post/2023/05/2023-05-01-memo-pour-ventoux-gravel-tour-110-km-edition-2023/</link>
      <pubDate>Mon, 01 May 2023 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2023/05/2023-05-01-memo-pour-ventoux-gravel-tour-110-km-edition-2023/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Le parcours :&lt;/strong&gt;&lt;/p&gt;&#xA;&#xA;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.css&#34; crossorigin=&#34;&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/style.css&#34; /&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.css&#34; /&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet/leaflet.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet.geometryutil.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://move.cyber-neurones.org/gpx-shortcode/leaflet-distance-marker.js&#34;&gt;&lt;/script&gt;&#xA;&lt;script src=&#34;https://cdnjs.cloudflare.com/ajax/libs/leaflet-gpx/1.7.0/gpx.min.js&#34;&gt;&lt;/script&gt;&#xA;&#xA;&#xA;&lt;section id=&#34;container&#34; class=&#34;gpx&#34;&gt;&#xA;  &lt;div class=&#34;map&#34; id=&#34;map-&#34;&gt;&lt;/div&gt;&#xA;  &lt;footer&gt;&#xA;    &#xA;    &#xA;    &#xA;      &lt;ul class=&#34;info&#34;&gt;&#xA;        &lt;li&gt;&lt;input type=&#34;checkbox&#34; checked class=&#34;tracks&#34; track-id=&#34;0&#34;/&gt;&lt;/li&gt;&#xA;        &lt;li style=&#34;color:blue&#34;&gt;&amp;#9632;&lt;/li&gt;&#xA;        &#xA;        &lt;li&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;start-VENTOUX GRAVEL TOUR 113 K32 DENTELLES ET SOMMET.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;distance-VENTOUX GRAVEL TOUR 113 K32 DENTELLES ET SOMMET.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;duration-VENTOUX GRAVEL TOUR 113 K32 DENTELLES ET SOMMET.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li class=&#34;elevation-VENTOUX GRAVEL TOUR 113 K32 DENTELLES ET SOMMET.gpx&#34;&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;VENTOUX%20GRAVEL%20TOUR%20113%20K32%20DENTELLES%20ET%20SOMMET.gpx&#34;&gt;Download&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &#xA;  &lt;/footer&gt;&#xA;&lt;/section&gt;&#xA;&#xA;&lt;script&gt;&#xA;  var urls = new Array(&#34;VENTOUX GRAVEL TOUR 113 K32 DENTELLES ET SOMMET.gpx&#34;,)&#xA;  var mapid = &#34;map-&#34;;&#xA;  var container = document.getElementById(&#34;container&#34;);&#xA;  var colors = [&#34;blue&#34;,&#34;darkblue&#34;,&#34;purple&#34;];&#xA;  var layers = new Array();&#xA;    &#xA;  &#xA;  var map = L.map(mapid, { fullscreenControl: true, scrollWheelZoom: false });&#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  &#xA;  createLayer(&#34;https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png&#34;, &#34;© \u003ca href=\&#34;https://www.openstreetmap.org/copyright\&#34;\u003eOpenStreetMap\u003c/a\u003e contributors&#34;,  1 ,  20 ,  null ,  null ).addTo(map);&#xA;  &#xA;&#xA;  var control = L.control.layers(null, null).addTo(map);&#xA;  var bounds = null;&#xA;  urls.forEach(function(url, index) {&#xA;    addTrack(urls[index], index, map);&#xA;  });&#xA;  &#xA;  &#xA;  document.addEventListener(&#34;DOMContentLoaded&#34;, function(){&#xA;    &#xA;    &#xA;    Array.from(document.getElementsByClassName(&#34;location&#34;)).forEach(addMarker);&#xA;    &#xA;    &#xA;    document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;      item.checked = true;&#xA;    });&#xA;  });&#xA;  &#xA;  &#xA;  document.querySelectorAll(&#34;.tracks&#34;).forEach(function(item) {&#xA;    item.addEventListener(&#34;click&#34;, function() {&#xA;      var id = this.getAttribute(&#34;track-id&#34;);&#xA;      if (event.currentTarget.checked) {&#xA;        showTrack(id);&#xA;      } else {&#xA;        hideTrack(id);&#xA;      }&#xA;    })&#xA;  });&#xA;  &#xA;  &#xA;  function addTrack(url, index, map) {&#xA;    layers[index]=new L.GPX(url, {&#xA;      gpx_options: {&#xA;        joinTrackSegments: false&#xA;      },&#xA;      async: true,&#xA;      marker_options: {&#xA;        startIconUrl: &#34;/gpx-shortcode/pin-icon-start.png&#34;,&#xA;        endIconUrl: &#34;/gpx-shortcode/pin-icon-end.png&#34;,&#xA;        shadowUrl: &#34;/gpx-shortcode/pin-shadow.png&#34;,&#xA;      },&#xA;      &#xA;      polyline_options: {color: colors[index % colors.length], distanceMarkers: true, smoothFactor: 0.5 }&#xA;    }).on(&#34;loaded&#34;, function(e) {&#xA;      var gpx = e.target;&#xA;      if (bounds === null) {&#xA;        bounds = gpx.getBounds();&#xA;      }&#xA;      else&#xA;      {&#xA;        bounds.extend(gpx.getBounds());&#xA;      }&#xA;      map.fitBounds(bounds);&#xA;      control.addOverlay(gpx, gpx.get_name());&#xA;      addMetadata(gpx, url);&#xA;    });&#xA;    layers[index].addTo(map);&#xA;  }&#xA;  &#xA;  function showTrack(id) {&#xA;    layers[id].addTo(map);&#xA;  }&#xA;  &#xA;  function hideTrack(id) {&#xA;    layers[id].removeFrom(map);&#xA;  }&#xA;  &#xA;  &#xA;  function createLayer(url, attribution, minZoom, maxZoom, bounds, inverseBounds) {&#xA;    var layer = L.tileLayer(url, { attribution: attribution, minZoom: minZoom, maxZoom: maxZoom});&#xA;    if (bounds != null) {&#xA;      &#xA;      layer.options.bounds = new L.LatLngBounds(&#xA;        new L.LatLng(bounds[0], bounds[1]),&#xA;        new L.LatLng(bounds[2], bounds[3]));&#xA;    }&#xA;    if (inverseBounds != null) {&#xA;      layer.options.inverseBounds = new L.LatLngBounds(&#xA;        new L.LatLng(inverseBounds[0], inverseBounds[1]),&#xA;        new L.LatLng(inverseBounds[2], inverseBounds[3]));&#xA;    }&#xA;    return layer;&#xA;  }&#xA;&#xA;  &#xA;  function addMarker(link) {&#xA;    lat = link.getAttribute(&#34;lat&#34;);&#xA;    lon = link.getAttribute(&#34;lon&#34;);&#xA;    text = link.textContent;&#xA;    name = link.getAttribute(&#34;name&#34;);&#xA;    title = (name != &#34;&#34;) ? name : text;&#xA;    url = link.getAttribute(&#34;link&#34;);&#xA;    if (url != &#34;&#34;)&#xA;    {&#xA;      title = &#34;&lt;a target=\&#34;_blank\&#34; href=\&#34;&#34; + url + &#34;\&#34;&gt;&#34; + title + &#34;&lt;/a&gt;&#34;;&#xA;    }&#xA;    marker = L.marker([lat, lon]).addTo(map);&#xA;    marker.bindPopup(title).openPopup();&#xA;  }&#xA;  &#xA;  &#xA;  function addMetadata(gpx, url) {&#xA;    var date = gpx.get_start_time();&#xA;    var datestring = date.getFullYear() + &#34;-&#34; + (date.getMonth()+1).toString().padStart(2, &#34;0&#34;) + &#34;-&#34; + date.getDate().toString().padStart(2, &#34;0&#34;)  + &#34; &#34; + date.getHours().toString().padStart(2, &#34;0&#34;) + &#34;:&#34; + date.getMinutes().toString().padStart(2, &#34;0&#34;);&#xA;    _c(&#34;start-&#34; + url).textContent = (date &gt; 0) ? datestring : &#34;&#34;;&#xA;    _c(&#34;distance-&#34; + url).textContent = &#34;Distance: &#34; + (gpx.get_distance() / 1000).toFixed(2) + &#34; km&#34;;&#xA;    var duration = gpx.get_moving_time();&#xA;    _c(&#34;duration-&#34; + url).textContent = (duration &gt; 0) ? &#34;Duration: &#34; + gpx.get_duration_string(duration) : &#34;&#34;;&#xA;    _c(&#34;elevation-&#34;+ url).textContent = `Elevation: ${gpx.get_elevation_gain().toFixed(0)} m, -${gpx.get_elevation_loss().toFixed(0)} m, net:  ${(gpx.get_elevation_gain() - gpx.get_elevation_loss()).toFixed(0)}  m`;&#xA;  }&#xA;  &#xA;  &#xA;  function _c(c) {&#xA;    return container.getElementsByClassName(c)[0];&#xA;  }&#xA;&lt;/script&gt;&#xA;&#xA;&lt;p&gt;(J&amp;rsquo;imagine qu&amp;rsquo;ils ont utilisés un vélo electrique pour la roco : 25 km/h de moyenne en montée et descente )&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trail du Ventoux : Origine 46 km : Edition 2023</title>
      <link>https://move.cyber-neurones.org/post/2023/03/2023-03-13-trail-du-ventoux-origine-46-km-edition-2023/</link>
      <pubDate>Mon, 13 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://move.cyber-neurones.org/post/2023/03/2023-03-13-trail-du-ventoux-origine-46-km-edition-2023/</guid>
      <description>&lt;p&gt;Très bonne organisation, et superbes goodies ( manchon &amp;amp; bière ). La seule chose regrettable c&amp;rsquo;est l&amp;rsquo;écart de 400m dans le dénivelé. L&amp;rsquo;organisation a annoncé 2050m et j&amp;rsquo;ai vu 2450m &amp;hellip; j&amp;rsquo;ai demandé à d&amp;rsquo;autres personnes qu&amp;rsquo;il avait dans les 2400m &amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai superposé mon tracé et le tracé de l&amp;rsquo;organisation :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/capture-decran-2023-03-13-a-125738-1024x529.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;c&amp;rsquo;est ceci que me fait dire que le tracé de l&amp;rsquo;organisation est faux :&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;images/capture-decran-2023-03-13-a-130051-1024x525.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Le site de l&amp;rsquo;organisation : &lt;a href=&#34;https://www.trailduventoux.fr/&#34;&gt;https://www.trailduventoux.fr/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
