{"version":"1.0","provider_name":"OpenStack Blog | Open Infrastructure Foundation","provider_url":"https:\/\/astro.openstack.org\/blog","author_name":"James Blair","author_url":"https:\/\/astro.openstack.org\/blog\/author\/james-e-blair\/","title":"Infrastructure Bootcamp - OpenStack Blog | Open Infrastructure Foundation","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"3MzT6ZQ8lO\"><a href=\"https:\/\/astro.openstack.org\/blog\/infrastructure-bootcamp\/\">Infrastructure Bootcamp<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/astro.openstack.org\/blog\/infrastructure-bootcamp\/embed\/#?secret=3MzT6ZQ8lO\" width=\"600\" height=\"338\" title=\"&#8220;Infrastructure Bootcamp&#8221; &#8212; OpenStack Blog | Open Infrastructure Foundation\" data-secret=\"3MzT6ZQ8lO\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^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<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(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<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);\n\/\/# sourceURL=https:\/\/astro.openstack.org\/blog\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","description":"Recently the Project Infrastructure team hosted a two-day &#8220;bootcamp&#8221; for people who are interested in contributing to the Project Infrastructure. \u00a0The OpenStack project is so large, and continuing to grow, that creating and operating the developer infrastructure for the project itself is a unique challenge. \u00a0Because OpenStack receives code contributions from more than 600 developers... Read more &raquo;","thumbnail_url":"https:\/\/astro.openstack.org\/blog\/wp-content\/uploads\/2013\/07\/9149986267_30957a5842.jpg","thumbnail_width":500,"thumbnail_height":375}