<!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-49923225b15584efebd7a337daac5102.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="/index.html"><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="/credits.html">Credits</a> | <a href="/media.html">Media</a>
</div>

<div class="footer-text">
  <p class="">Copyright &copy; 2009-2022 <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 2022-03-29 22:17:41 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-23549af89e29254587a07d91b7eb9749.js' type='text/javascript'></script>

    

    <script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-23580482-1']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

  </body>
</html>
