<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    
      <meta name="description" content="Learn about Libcloud by reading presentations and articles written by other Libcloud users and developers.">
    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Community Resources | Apache Libcloud</title>
    

    <!-- fav icons -->
    <link rel="shortcut icon" href="/images/favicon.png" />
    <link rel="apple-touch-icon" href="/images/apple-touch-icon.png" />
    <link rel="apple-touch-icon-precomposed" href="/images/apple-touch-icon.png" />

    <link href="/blog/atom.xml" type="application/atom+xml" rel="alternate" title="Apache Libcloud Blog Feed" />

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Community Resources" property="og:title">
    

    

    
      <meta content="Learn about Libcloud by reading presentations and articles written by other Libcloud users and developers." property="og:description">
    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/community-resources" property="og:url">
    
    

    

    <link href='/assets/global-0faf439f2f098e60d3f1e591316155fc.css' rel='stylesheet' type='text/css' />
  </head>

  <body data-spy="scroll" data-target=".sidebar-nav" data-offset="80">
    <nav class="navbar navbar-fixed-top navbar-inverse" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="/"><img src="/images/libcloud_logo.png" class="navbar-logo" /> Apache Libcloud</a>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            
            
              
              <li ><a href="/" >Home</a></li>
            
              
              <li ><a href="/about.html" >About</a></li>
            
              
              <li ><a href="/getting-started.html" >Quick Start</a></li>
            
              
              <li ><a href="https://libcloud.readthedocs.org/en/stable/" target="_blank">Documentation</a></li>
            
              
              <li ><a href="/downloads.html" >Downloads</a></li>
            
              
              <li ><a href="/community.html" >Community</a></li>
            
              
              <li ><a href="/blog/" >Blog</a></li>
            
          </ul>

          <div class="material-switch pull-right">
              <input id="theme-switch" name="theme-switch" type="checkbox" onclick="modeSwitcher()"/>
              <label for="theme-switch" class="label-default"></label>
              <span id="theme-toggle" class="theme-switch">Dark mode</span>
          </div>

        </div><!-- /.navbar-collapse -->
      </div><!-- /.container -->
    </nav>

    <div class="container main-container">
      <div class="row section page-content">
  <div class="col-lg-8 col-lg-offset-2">
    <h1 id="community-resources">Community Resources</h1>

<p>This page contains a non-exhaustive list of resource such as articles,
presentations and videos produced by the Libcloud developers and users.</p>

<p>Resources are listed in a reverse-chronological (newest to oldest) order.</p>

<h2 id="articles-and-tutorials">Articles and Tutorials</h2>

<ul>
  <li><a href="http://blog.abiquolabs.com/using-abiquo-with-libcloud/">Using Abiquo with libcloud</a>, February 25th, 2013</li>
  <li><a href="http://stratuslab.eu//news/2013/02/20/news-libcloud.html">StratusLab Support for Libcloud</a>, February 20th, 2013</li>
  <li><a href="http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/WP102127">Using Apache Libcloud with IBM SmartCloud Enterprise</a>, May 15th, 2012</li>
  <li><a href="http://undertitled.com/2012/04/11/bookkeeping-with-libcloud.html">Bookkeeping With Libcloud</a>, April 11th, 2012</li>
  <li><a href="http://lars.la/libcloud_and_fabric.html">Playing with Amazon EC2, libcloud and fabric</a>, Lars Larsson, April
16th, 2011</li>
  <li><a href="http://blog.secondstory.com/introducing-dewpoint">Dewpoint: a command-line tool for cloud computing</a>, David Brewer,
January 30th, 2011</li>
  <li><a href="http://agiletesting.blogspot.com/2011/01/libcloud-042-and-ssl.html">libcloud 0.4.2 and SSL, Grig Gheorghiu</a>, January 19th, 2011</li>
  <li><a href="http://agiletesting.blogspot.com/2011/01/passing-user-data-to-ec2-ubuntu.html">Passing user data to EC2 Ubuntu instances with libcloud</a>, Grig
Gheorghiu, January 19th, 2011</li>
  <li><a href="http://agiletesting.blogspot.com/2010/12/using-libcloud-to-manage-instances.html">Using libcloud to manage instances across multiple cloud providers</a>,
Grig Gheorghiu, December 21st, 2010</li>
  <li><a href="http://www.outsidaz.org/blog/2010/12/13/how-to-leverage-cloud-computing-assets-via-apache-libcloud/">How to leverage cloud computing assets via apache-libcloud</a>, RichJ,
December 13th, 2010</li>
  <li><a href="http://empt1e.blogspot.com/2010/07/announcing-lc-tools.html">Announcing lc-tools: command line tools on top of libcloud</a>, Roman
Bogorodskiy, July 14th, 2010</li>
  <li><a href="https://blog.serverdensity.com/using-vcloud-and-amazon-cloudwatch-with-libcloud/">Using vCloud and Amazon CloudWatch with libcloud</a>, Ryan Duffield, March
4th, 2011</li>
  <li><a href="http://blog.rimuhosting.com/2009/10/27/using-libcloud-with-rimuhosting/">Using Libcloud with RimuHosting</a>, davidmace, October 27th, 2009</li>
  <li><a href="http://zenofnptech.org/2009/07/wonders-of-libcloud.html">The wonders of libcloud</a>, July 30th, 2009</li>
</ul>

<h2 id="presentations">Presentations</h2>

<ul>
  <li><a href="http://www.tomaz.me/slides/2013-11-21-apache-libcloud">Libcloud + CloudStack</a>, Tomaz Muraus @ CloudStack Collaboration Conference 2013</li>
  <li><a href="http://www.slideshare.net/phymata/cloud-portability-with-multicloud-toolkits">Cloud Portability With Multi-Cloud Toolkits</a>, Everett Toews @ OSCON 2013</li>
  <li><a href="http://events.linuxfoundation.org/images/stories/pdf/lcna_co2012_muraus.pdf">Avoiding Vendor Lock-In Using Apache Libcloud</a>, Tomaz Muraus @ CloudOpen 2012</li>
  <li><a href="http://www.slideshare.net/charsyam2/libcloud-and-j-clouds">Libcloud and j clouds</a>, Dae Myung Kang</li>
  <li><a href="http://www.tomaz.me/slides/manging_the_cloud_with_libcloud_europython.pdf">Managing the cloud With Libcloud</a>, Tomaz Muraus @ EuroPython 2011</li>
  <li><a href="http://www.slideshare.net/ggheorghiu/working-in-the-multicloud-with-libcloud">Working in the multi-cloud with libcloud</a>, Grig Gheorghiu, 2011</li>
  <li><a href="http://www.slideshare.net/doug_tidwell/keeping-your-options-open">Keeping Your Options Open in the Cloud</a>, Doug Tidwell @ Cloud Expo Europe 2011</li>
  <li><a href="http://paul.querna.org/slides/libcloud-surge2010.pdf">Apache Libcloud: API driven operations</a>, Paul Querna @ Surge 2010</li>
  <li><a href="http://paul.querna.org/slides/libcloud-2010-06.pdf">Apache Libcloud</a>, Paul Querna @ Open Source Bridge 2010</li>
  <li><a href="http://paul.querna.org/slides/libcloud-ignite.pdf">Apache Libcloud</a>, Paul Querna @ Velocity Ignite 2010</li>
</ul>

<h2 id="non-english-publications">Non-English Publications</h2>

<ul>
  <li><a href="http://www.tomaz.me/slides/2011-10-05_wwwhmb_apache_libcloud.pdf">Apache Libcloud</a>, Tomaz Muraus @ wwwhmb 2011, October 5th</li>
  <li><a href="http://habrahabr.ru/post/111530/">Управление облаками в Python</a>, January 9th, 2011</li>
</ul>

<h2 id="not-listed">Not Listed?</h2>

<p>If you wrote an article, blog post or a tutorial about Libcloud and you
would like to have it listed on this page, please let us know.</p>


  </div>
</div>


      <hr />

      <footer>
        <div class="row">
          <div class="col-lg-12 text-center">
            <div class="footer-links">
  <p><a href="http://www.apache.org/licenses/">License</a> | <a
  href="/security.html">Security</a> | <a
  href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a> |
  <a href="http://www.apache.org/foundation/thanks.html">Thanks</a> |
  <a href="https://www.apache.org/events/">Events</a> |
  <a href="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p><a class="acevent" data-format="wide"></a></p>
  <p class="">Copyright &copy; 2009-2023 <a href="https://www.apache.org/" target="_blank">The Apache Software Foundation</a></p>
  <p class="">Apache Libcloud, Libcloud, Apache, the Apache feather, and the Apache Libcloud project logo are trademarks of the Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</p>
  <p class="">Site last updated on 2023-09-09 21:30:54 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-dac9eed9206cf02359a2dd1d7c03e401.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before
"trackPageView" */
  /* We explicitly disable cookie tracking to avoid privacy issues */
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '7']);
    var d=document, g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>

    <script src="https://www.apachecon.com/event-images/snippet.js"></script>

  </body>
</html>
