<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>OpenStack Blog | Open Infrastructure Foundation</provider_name><provider_url>https://www.openstack.org/blog</provider_url><author_name>Stefano Maffulli</author_name><author_url>https://www.openstack.org/blog/author/stefano/</author_url><title>To the first OpenStack Documentation BootCamp - OpenStack Blog | Open Infrastructure Foundation</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="2xlYora5mB"&gt;&lt;a href="https://www.openstack.org/blog/to-the-first-openstack-documentation-bootcamp/"&gt;To the first OpenStack Documentation BootCamp&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://www.openstack.org/blog/to-the-first-openstack-documentation-bootcamp/embed/#?secret=2xlYora5mB" width="600" height="338" title="&#x201C;To the first OpenStack Documentation BootCamp&#x201D; &#x2014; OpenStack Blog | Open Infrastructure Foundation" data-secret="2xlYora5mB" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://www.openstack.org/blog/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><description>The OpenStack Docs Bootcamp offers a deep dive into the technical tools, workflows, and processes we use to create docs.openstack.org and api.openstack.org. Our goal is to give enough information that will create sustaining new core members of OpenStack Documentation. Inspired by the first successful Infrastructure BootCamp, the OpenStack Documentation BootCamp is an in-person, intensive sprint... Read more &raquo;</description></oembed>
