Freeing the cloud, one service at a time
Upcoming SlideShare
Loading in...5
×
 

Freeing the cloud, one service at a time

on

  • 858 views

This talk presents an approach to building free network services and introduces Libravatar, a Django-based project to provide a federated and Open Source alternative to the Gravatar profile image ...

This talk presents an approach to building free network services and introduces Libravatar, a Django-based project to provide a federated and Open Source alternative to the Gravatar profile image hosting service, a centralised web service used by a large number of social sites in the cloud.

Statistics

Views

Total Views
858
Views on SlideShare
793
Embed Views
65

Actions

Likes
1
Downloads
4
Comments
0

4 Embeds 65

http://www.oscon.com 58
http://lanyrd.com 5
http://www.m.techgig.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Freeing the cloud, one service at a time Freeing the cloud, one service at a time Presentation Transcript

  • freeing the cloudone (small) service at a time François Marier francois@catalyst.net.nz
  • open source desktopapplications
  • SaaS View slide
  • privacy ® View slide
  • autonomy control
  • 1980s
  • 100% free operating systems
  • started replacing allproprietary programs one at a time
  • “Developers of network services are encouraged to:● Use the GNU Affero GPL, a license designed specifically for network service software, to ensure that users of services have the ability to examine the source or implement their own service.● Develop freely-licensed alternatives to existing popular but non-Free network services. ”● Develop software that can replace centralized services and data storage with distributed software and data deployment, giving control back to users. Franklin Street Statement, 14 July 2008
  • start replacing allproprietary services one at a time
  • libreprojects.net
  • looking for a small one...
  • 2. assign to email address1. upload photo
  • 101
  • FMarier@GMail.com
  • fmarier@gmail.com
  • f52a1d3d8c39868fc92cf70828821635
  • http://www.gravatar.com/avatar/f52a1d3d8c39868fc92cf70828821635.jpg
  • <img src=”http://www.gravatar.com/avatar/ f52a1d3d8c39868fc92cf70828821635.jpg”>
  • <img src=”http://www.gravatar.com/avatar/ f52a1d3d8c39868fc92cf70828821635.jpg”>
  • started to write a replacement
  • Libravatar
  • “80%” of what does protected accounts
  • “80%” of what does G / PG / X ratings XMLRPC API
  • must fit into the world
  • must fit into the world use the same API
  • must fit into the world use the same API be a Twitter client
  • use the same APIhttps://api.twitter.com/statuses /show/123.xmlhttps://identi.ca/api/statuses /show/123.xml
  • be a Twitter client
  • must fit into the world use the same API be a Gravatar client
  • use the same API http://www.gravatar.com/avatar/f52a1d3d8c39868fc92cf70828821635.jpg http://cdn.libravatar.org/avatar/f52a1d3d8c39868fc92cf70828821635.jpg
  • be a Gravatar client
  • Now, how about making it better?
  • Federation via DNS_avatars._tcp SRV avatars.catalyst.net.nz
  • IPv6
  • IPv6 SHA256
  • IPv6 SHA256 OpenID
  • IPv6 SHA256 OpenIDLDAP
  • IPv6 SHA256 OpenID AccountLDAP Export
  • IPv6 SHA256 OpenID Account PhotoLDAP Export Importers
  • What does it look like?
  • Live demo!
  • photos uploadedor imported by users Django
  • photos uploaded or imported by users Djangostatic files on disk
  • avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) static files on disk
  • avatars sent to photos uploaded third parties or imported by users high traffic Apache low traffic Django(mod_rewrite) (static) (dynamic) static files on disk
  • avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) static files on disk
  • avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) Gearman Crop, resize static files Queue and optimise on disk
  • avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) Gearman Crop, resize static files Queue and optimise on disk
  • avatars sent to avatars sent to avatars sent to photos uploaded third parties third parties third parties or imported by users Apache Apache Apache Django(mod_rewrite) (mod_rewrite) (mod_rewrite) Gearman Crop, resize static files static files static files Queue and optimise on disk on disk on disk
  • Who uses it?
  • --- a/IkiWiki/Plugin/comments.pm+++ b/IkiWiki/Plugin/comments.pm@@ -187,6 +188,16 @@ sub preprocess { $commentauthor = $commentuser; }++ eval use Libravatar::URL;++ if (! $@) {+ my $email = IkiWiki::userinfo_get($commentuser, email);++ if (defined $email) {+ $commentauthoravatar = libravatar_url(email => $email);+ }+ } } else { if (defined $params{ip}) {--- a/templates/comment.tmpl+++ b/templates/comment.tmpl@@ -1,6 +1,10 @@ <TMPL_IF HTML5><article class="comment" id="<TMPL_VAR COMMENTID>"> <TMPL_ELSE><div class="comment" id="<TMPL_VAR COMMENTID>"></TMPL_IF>+<TMPL_IF COMMENTAUTHORAVATAR><div class="comment-avatar">+<img src="<TMPL_VAR COMMENTAUTHORAVATAR>" alt="" />+</div></TMPL_IF>+ <TMPL_IF HTML5><header class="comment-subject"><TMPL_ELSE><div class="comment-subject"></TMPL_IF> <TMPL_IF PERMALINK>
  • --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-detail.tt@@ -675,6 +678,9 @@ YAHOO.util.Event.onContentReady("furtherm", function () { [% ELSE %] <div class="commentline"> [% IF ( ShowReviewer ) %]+ [% IF ( review.avatarurl ) %]+ <img class="avatar" src="[% review.avatarurl %]" height="80" width="80"/>+ [% END %] <h5> Comment by [% review.title %]--- a/opac/opac-detail.pl+++ b/opac/opac-detail.pl@@ -295,6 +295,13 @@ $template->param( ocoins => GetCOinSBiblio($biblionumber), );+my $libravatar_available = 0;+eval use Libravatar::URL;+if (! $@) {+ $libravatar_available = 1;+} my $reviews = getreviews( $biblionumber, 1 ); my $loggedincommenter;@@ -303,6 +310,9 @@ foreach ( @$reviews ) { $_->{title} = $borrowerData->{title}; $_->{surname} = $borrowerData->{surname}; $_->{firstname} = $borrowerData->{firstname};+ if ($libravatar_available and $borrowerData->{email}) {+ $_->{avatarurl} = libravatar_url(email => $borrowerData->{email});+ } $_->{userid} = $borrowerData->{userid}; $_->{cardnumber} = $borrowerData->{cardnumber};
  • Get involved! ● write a pluginwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • Get involved! ● write a plugin ● host a mirrorwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • Get involved! ● write a plugin ● host a mirror ● translate the UIwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • Get involved! ● write a plugin ● host a mirror ● translate the UI ● create an account today!www.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • Questions? ideas for Libravatar? other easy services to replace? fmarier fmarierhttp://feeding.cloud.geek.nz
  • Photo creditsStorm clouds: http://www.flickr.com/photos/johnson7/1460568819/Linen texture: http://www.flickr.com/photos/zooboing/4715048673/Name tag: http://www.flickr.com/photos/stevegarfield/833593377/Cloud sign: http://www.flickr.com/photos/jamescridland/4122948535/Facebook data center: http://www.flickr.com/photos/traftery/5596941479/First web server: http://www.flickr.com/photos/scobleizer/2251820987/Bradley Kuhn: https://secure.wikimedia.org/wikipedia/en/wiki/File:Bkuhn-2008-08-20.jpgBenjamin Mako Hill: http://www.flickr.com/photos/soulfish/2374876735Mike Linksvayer: http://www.flickr.com/photos/joi/2595169497/Luis Villa: http://tieguy.org/pics/Wedding/Honeymoon/Highlights/New-Zealand/img_2145Henri Poole: http://www.flickr.com/photos/weblogsky/9271675/Evan Prodromou: http://www.flickr.com/photos/christopheducamp/4469158609/Jonathan Gray: http://www.flickr.com/photos/jwyg/4497000847/Aaron Swartz: http://www.flickr.com/photos/creativecommons/3111021669/Evan Prodromou presenting: http://www.flickr.com/photos/walkah/4831658754 Copyright © 2011 François Marier Released under the terms of the Creative Commons Attribution Share Alike 3.0 Unported Licence