Freeing the cloud, one service at a time

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 104 views
of 84

Please download to get full document.

View again

Description
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.
Share
Transcript
  • 1. freeing the cloudone (small) service at a time François Marier francois@catalyst.net.nz
  • 2. open source desktopapplications
  • 3. SaaS
  • 4. privacy ®
  • 5. autonomy control
  • 6. 1980s
  • 7. 100% free operating systems
  • 8. started replacing allproprietary programs one at a time
  • 9. “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
  • 10. start replacing allproprietary services one at a time
  • 11. libreprojects.net
  • 12. looking for a small one...
  • 13. 2. assign to email address1. upload photo
  • 14. 101
  • 15. FMarier@GMail.com
  • 16. fmarier@gmail.com
  • 17. f52a1d3d8c39868fc92cf70828821635
  • 18. http://www.gravatar.com/avatar/f52a1d3d8c39868fc92cf70828821635.jpg
  • 19. <img src=”http://www.gravatar.com/avatar/ f52a1d3d8c39868fc92cf70828821635.jpg”>
  • 20. <img src=”http://www.gravatar.com/avatar/ f52a1d3d8c39868fc92cf70828821635.jpg”>
  • 21. started to write a replacement
  • 22. Libravatar
  • 23. “80%” of what does protected accounts
  • 24. “80%” of what does G / PG / X ratings XMLRPC API
  • 25. must fit into the world
  • 26. must fit into the world use the same API
  • 27. must fit into the world use the same API be a Twitter client
  • 28. use the same APIhttps://api.twitter.com/statuses /show/123.xmlhttps://identi.ca/api/statuses /show/123.xml
  • 29. be a Twitter client
  • 30. must fit into the world use the same API be a Gravatar client
  • 31. use the same API http://www.gravatar.com/avatar/f52a1d3d8c39868fc92cf70828821635.jpg http://cdn.libravatar.org/avatar/f52a1d3d8c39868fc92cf70828821635.jpg
  • 32. be a Gravatar client
  • 33. Now, how about making it better?
  • 34. Federation via DNS_avatars._tcp SRV avatars.catalyst.net.nz
  • 35. IPv6
  • 36. IPv6 SHA256
  • 37. IPv6 SHA256 OpenID
  • 38. IPv6 SHA256 OpenIDLDAP
  • 39. IPv6 SHA256 OpenID AccountLDAP Export
  • 40. IPv6 SHA256 OpenID Account PhotoLDAP Export Importers
  • 41. What does it look like?
  • 42. Live demo!
  • 43. photos uploadedor imported by users Django
  • 44. photos uploaded or imported by users Djangostatic files on disk
  • 45. avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) static files on disk
  • 46. 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
  • 47. avatars sent to photos uploaded third parties or imported by users Apache Django(mod_rewrite) static files on disk
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. Who uses it?
  • 52. --- 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>
  • 53. --- 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};
  • 54. Get involved! ● write a pluginwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • 55. Get involved! ● write a plugin ● host a mirrorwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • 56. Get involved! ● write a plugin ● host a mirror ● translate the UIwww.libravatar.org libravatar.onlinegroups.netlaunchpad.net/libravatar #libravatar on chat.freenode.net
  • 57. 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
  • 58. Questions? ideas for Libravatar? other easy services to replace? fmarier fmarierhttp://feeding.cloud.geek.nz
  • 59. 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
  • Related Search
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks