<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    

    <meta name="author" content="The Apache Software Foundation">

    
      <meta name="keywords" content="python,libcloud,cloud,cloud computing,rackspace,amazon ec2,cloudfiles,openstack,cloudstack" />
    

    
      <title>Google Summer of Code 2012 | 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" />

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,400italic' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Inconsolata' rel='stylesheet' type='text/css'>

    <!-- Facebook OpenGraph tags -->
    <meta content="Apache Libcloud" property="og:site_name">
    
      <meta content="Google Summer of Code 2012" property="og:title">
    

    

    

    
      <meta content="website" property="og:type">
    

    
      <meta content="https://libcloud.apache.org/gsoc-2012" property="og:url">
    
    

    

    <link href='/assets/global-d2fdf4380407bfba8b94f342a2dd4e41.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><!-- /.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="google-summer-of-code-2012">Google Summer of Code 2012</h1>

<p>Google Summer of Code is a program where Google sponsors students from around
the world to spend their summer working on open-source projects. Student is
paid 5000$ if they successfully complete all of their evaluations. More
information about the program can be found on the <a href="http://google-melange.appspot.com/gsoc/homepage/google/gsoc2012">project website</a>.</p>

<p><a href="http://google-melange.appspot.com/gsoc/homepage/google/gsoc2012" target="_blank">
<img src="/images/gsoc/gsoc2012.png" class="img-responsive inline center" /></a></p>

<h2 id="accepted-projects">Accepted Projects</h2>

<h3 id="libcloud-rest">Libcloud REST</h3>

<p>HTTP interface for Libcloud (http://libcloud.apache.org/) which exposes
all the Libcloud functionality through a RESTful API. Currently Libcloud
has a big limitation - you can only use it with Python. Adding a REST
interface would allow users to leverage Libcloud functionality through an
arbitrary language which knows how to talk HTTP.</p>

<p><strong>Mentor</strong>: Tomaz Muraus<br />
<strong>Student</strong>: Ilgiz Islamgulov<br />
<strong>Application</strong>: https://docs.google.com/document/d/1XdncChipJS0B7jP7p6jcQi1PZbUbsB0y7gKehxjw8ZU<br />
<strong>Strategic plan</strong>: <a href="https://docs.google.com/document/d/1P9fIxILn-WdgpkXDPydHB_dghGs-BYuoSmkFwh0Y36w">click</a></p>

<p>Project progress can be tracked on <a href="https://github.com/islamgulov/libcloud.rest">Github</a> and weekly updates are sent to
the mailing list.</p>

<h2 id="project-ideas">Project Ideas</h2>

<p>Some of the existing project ideas proposed by Libcloud developers can be found
on our <a href="http://s.apache.org/lcgsoc2012tasks">ticket tracker</a>. Students are also more than welcome to propose
their own ideas.</p>

<h2 id="available-mentors">Available Mentors</h2>

<ul>
  <li>Tomaz Muraus (tomaz) - UTC -8</li>
  <li>Roman Bogorodsky (rbogorodskiy) - UTC +4</li>
  <li>Jed Smith (jed) - UTC -8</li>
</ul>

<h2 id="student-applications">Student Applications</h2>

<p>Application template can be found in the section bellow. Before submitting
your application please start a discussion about the project idea on our
mailing list (dev@libcloud.apache.org).</p>

<h2 id="student-application-template">Student Application Template</h2>

<ul>
  <li>Name and surname</li>
  <li>E-mail address</li>
  <li>Blog / homepage (if you have one)</li>
  <li>IRC nick and network</li>
  <li>Google+ handle / Skype handle</li>
  <li>Name of school/  university, country, year, your average grade (and describe what this grade means)</li>
  <li>Age</li>
  <li>Which languages do you actively speak (and write)?</li>
  <li>Project / proposal title</li>
  <li>Project / proposal description</li>
  <li>Project / proposal schedule. How long will the project take? When can you begin work?</li>
  <li>Availability. How many hours per week can you spend working on this? What other obligations do you have this summer?</li>
  <li>Deliverables. It is very important to list quantifiable results here, for example:
    <ul>
      <li>Improve X modules in ways Y and Z.</li>
      <li>Write 3 new documentation pages for the new interfaces.</li>
      <li>Improve test coverage by writing X more unit/regression tests.</li>
      <li>Improve performance in FOO by X%.</li>
    </ul>
  </li>
  <li>How do you plan to continue with your project / proposal and within the Apache Libcloud community after GSoC?</li>
  <li>Benefits to the Free Software Community, who would gain from your project?</li>
  <li>Biography and Free Software experiences. Who are you? What makes you the best person to work on this project/proposal? What free and/or open source projects have you participated in? Please describe your contributions with references.</li>
</ul>


  </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-28 21:57:50 +0000</p>
</div>

          </div>
        </div>
      </footer>

    </div><!-- /.container -->

    <!-- JavaScript -->
    <script src='/assets/global-cda7136d9b37b9359b7069f5495d767d.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>
