{
  "attachments": [
    "4f940d2c9308.png"
  ],
  "comments_archived": true,
  "date": "2011-07-18T15:03:13.030Z",
  "layout": "post",
  "published": true,
  "tags": [
    "badger",
    "social",
    "python",
    "mozilla",
    "django"
  ],
  "title": "Badger 2: Return of the Mustelidae",
  "year": "2011",
  "month": "07",
  "day": "18",
  "isDir": true,
  "slug": "badger2",
  "type": "entry",
  "postName": "2011-07-18-badger2",
  "html": "<p><strong>TL;DR</strong>: <em>A year ago, I said I wanted to build a badging service\nfor the Mozilla community, so we could all celebrate how awesome we\nall are. Well, I putzed around and didn't get far, so I'm starting\nover with something more immediately useful.</em></p>\n<img src=\"4f940d2c9308.png\" style=\"width:98%; display: block\" width=\"\" height=\"\">\n\n<p><em>(This is an awesome illustration by <a href=\"http://seanmartell.com/\">Sean\nMartell</a>, used entirely without permission.\nI'll take it down if anyone gets mad.)</em></p>\n<p>Almost a year ago, <a href=\"http://decafbad.com/2010/07/badger-article/\">I wrote about building a badging service for\nall of Mozilla</a>. </p>\n<p>In a nutshell, I left the <a href=\"http://www.flickr.com/photos/gen/4784616521/\">2010 Mozilla Summit</a>\nwanting to build a tool that empowered people to craft social objects\nrepresenting achievement and gratitude, and give them to each other.</p>\n<p>Since then, I've <a href=\"https://github.com/lmorchard/badger\">played around with a prototype in Django with\nPinax</a>.  But, I abandoned that thing due to getting super\nbusy with the Firefox 4 release. It also didn't help that I was a\nDjango newb and that I got caught up in screwing around with shiny\nthings like <a href=\"http://pinaxproject.com\">Pinax</a> and <a href=\"http://lettuce.it\">Lettuce</a> and neglected the actual feature\nset.</p>\n<p>So now, finally, <a href=\"https://github.com/lmorchard/badger2\">I'm picking the thread back up again</a>. This\ntime, with a little less ambition and a few more practical aims.</p>\n<h3 id=\"make-something-more-useful-right-away\">Make something more useful right away</h3>\n<p>While I <em>have</em> spent some dangerous time screwing around with shinies like\n<a href=\"http://vagrantup.com\">Vagrant</a>, <a href=\"http://pupetlabs.com\">Puppet</a>, and <a href=\"https://github.com/mozilla/playdoh\">Playdoh</a>, I think I've gotten that\nmostly out of my system and have gotten down to work <a href=\"https://github.com/lmorchard/badger2/commits/master\">as of last\nnight</a>.</p>\n<p>Rather than build a Grand Central Station for badges, I've reset my\ngoals to a progression of practical results:</p>\n<ul>\n<li>Build a reusable Django app that supports some basic use cases of\ncreating and awarding badges to users.</li>\n<li>Add <a href=\"http://activitystrea.ms\">Activity Stream</a>s narrating <a href=\"http://wiki.activitystrea.ms/w/page/27189812/Badge\">badge claims</a></li>\n<li>Add support for <a href=\"http://code.google.com/p/pubsubhubbub/\">PubSubHubbub</a> with Badger activity streams</li>\n<li>Add a REST API, maybe with OAuth</li>\n<li>Accept badges for local users, via <a href=\"http://code.google.com/p/pubsubhubbub/\">PuSH</a> from\nexternal sites</li>\n<li>See what the <a href=\"https://wiki.mozilla.org/Badges\">Open Badges Project</a> is up to, and how Badger can\nfit in with their goals.</li>\n</ul>\n<p>The idea here is to make Badger a practical, reusable, drop-in app for\nexisting sites—preferably (but not necessarily) the\n<a href=\"https://github.com/mozilla/playdoh\">Playdoh</a>-flavored sites we're building at Mozilla. Then,\nincrementally and optionally empower a Badger-enabled site to become a\nbadge hub by accepting reports of badge claims from other\nBadger-enabled sites.</p>\n<h3 id=\"take-baby-steps-to-federation\">Take baby steps to federation</h3>\n<p>So, for example, let's say we dropped Badger into a few sites like\nthese:</p>\n<ul>\n<li><a href=\"http://developer.mozilla.org\">http://developer.mozilla.org</a>;</li>\n<li><a href=\"http://support.mozilla.com\">http://support.mozilla.com</a>;</li>\n<li><a href=\"http://addons.mozilla.org\">http://addons.mozilla.org</a>.</li>\n</ul>\n<p>At first, Badger would just augment those sites with badging\nfacilities for their respective user bases. That could fill some needs\nright away.</p>\n<p>Then, say we built a site that offered personal profiles to members of\nthe Mozilla community.  With the <a href=\"http://activitystrea.ms\">Activity Stream</a> and <a href=\"http://code.google.com/p/pubsubhubbub/\">PuSH</a>\naugmentations, users could connect their profiles with each of the\nother Mozilla sites they use.  That way, whenever they claim a badge\nout there, it gets delivered to their community profile.</p>\n<h3 id=\"why-bother-federating-at-all\">Why bother federating at all?</h3>\n<p>If the only cross-site goal to build an all-in-one display case for\nbadges on a community profile, I could just build JSON feeds and wrap\nthem in a JS-based widget. In fact, <a href=\"http://activitystrea.ms/specs/json/1.0/\">a JSON-formatted Activity\nStream</a> will work nicely for that. Drop that into the profile\npage, and we're done.</p>\n<p>There are lots of reasons to federate. But, at least one thing not supported by\nthis solution are <a href=\"http://decafbad.com/2010/07/badger-article/#section-105\">meta-badges</a>. That is, badges awarded for badges.</p>\n<p>Let's say you close 100 bugs on Bugzilla, answer 100 questions on\nSUMO, edit 100 pages of documentation on MDN, and author 100 add-ons.\nAnd, let's say you get badges on the respective sites for all of those\nactivities.</p>\n<p>Well, now, I'd like to give you a badge on your community profile for\nbeing a <strong>Mozilla Superhero</strong>. I could just do that by hand, having\nobserved all your greatness. But, I'd rather the system just do that\nautomatically.</p>\n<p>If your community profile treated all your badges from your chosen affiliated\nsites as first-class citizens, then I could build the meta-badge\ntrigger right there.</p>\n<p>Of course, I could also write a program that monitors badge feeds from\nvarious sites. Then, use the community profile site's Badger API to\nissue a badge when the conditions are met. But, as maintainer of the\nmonitoring program, I'd have to keep track of what feeds where count\nfor which people, which could be a mess.</p>\n<p>There's still some thinking to do here.</p>\n<h3 id=\"what-about-identity-and-co-opting-badges\">What about identity and co-opting badges?</h3>\n<p>I'm still thinking through how someone connects a profile to other\nsites. As in, how can Badger ensure that the owner of the community\nprofile is also the owner of a badge claim feed on MDN?  Maybe some\nkind of OAuth dance that results in a <a href=\"http://code.google.com/p/pubsubhubbub/\">PuSH</a> subscription between\nsites?</p>\n<p>Consider the least-capable federation case: a Badger-compatible feed\nhosted as a static file on Amazon S3. And, by Badger-compatible, I\nmean an <a href=\"http://activitystrea.ms\">Activity Stream</a> that contains <a href=\"http://wiki.activitystrea.ms/w/page/27189812/Badge\">badge claims</a>. You\nshouldn't need my specific implementation of Badger-in-Django to\nproduce one of those.</p>\n<p>Although <a href=\"http://code.google.com/p/pubsubhubbub/\">PuSH</a> is still the ideal case (I think), occasional\npolling of an <a href=\"http://activitystrea.ms\">Activity Stream</a> feed should still be supported. If a\nuser connects that up to their community profile, we just have to take\ntheir word for it. We'd rely on community members to\nflag stinkers trying to claim badge feeds that aren't theirs.</p>\n<p>Beyond that, there's probably some crypto-voodoo we can invoke here,\nfor cases where badge claim validity really matters—as opposed to the\nfun and games I have in mind for Mozilla.</p>\n<h3 id=\"what-about-the-open-badges-project\">What about the Open Badges Project?</h3>\n<p>From various conversations over the past year, it sounds to me like\nthe <a href=\"https://wiki.mozilla.org/Badges\">Open Badges Project</a> is getting the parts in place to do even\nmore interesting federation of badges that gives ownership of the\nbadge hub to the user.</p>\n<p>In that scenario, you have a backpack in your browser and can carry\nyour badge claims with you between sites with no prior coordination\nbetween the sites themselves. </p>\n<p>This sounds like something in which Badger should be able to\nparticipate, eventually. If not as a hub, Badger should at least offer\nthe tools to create and award badges that work with the user-owned hub\nscheme.</p>\n<h3 id=\"so-what-next\">So, what next?</h3>\n<p>Now that I've written all this out, I need to hack on it. If you're\ninterested in this stuff, let me know. That way, it'll look like\nsomeone might actually find this stuff handy when I get something\nworking!</p>\n<!-- vim: set wrap wm=5 syntax=mkd textwidth=70: -->\n\n<div id=\"comments\" class=\"comments archived-comments\"><h3>Archived Comments</h3>\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-256743407\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=afd2a7efeaad01509a571bae031dfc5c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">David Boswell</a>\n</div>\n\n\n<p><a href=\"#comment-256743407\" class=\"permalink\"><time datetime=\"2011-07-19T01:18:24\">2011-07-19T01:18:24</time></a></p>\n</div>\n\n\n<div class=\"content\">Very cool to see an update on Badger.&nbsp; I'm definitely interested in this and would love to see something like this show up in the Mozillians phonebook that will be ready soonish :)\nDavid</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-257292756\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://briks.si\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=29e2f1888cdcc9c451d32ab902d5a19c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://briks.si\">Brian King</a>\n</div>\n\n\n<p><a href=\"#comment-257292756\" class=\"permalink\"><time datetime=\"2011-07-19T15:12:01\">2011-07-19T15:12:01</time></a></p>\n</div>\n\n\n<div class=\"content\">Over at the Mozilla Reps program, we are discussing the possible use of badges - https://wiki.mozilla.org/ReMo</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-257331862\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://kanai.net/weblog/\"><img src=\"http://disqus.com/api/users/avatars/gkanai.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://kanai.net/weblog/\">Gen Kanai</a>\n</div>\n\n\n<p><a href=\"#comment-257331862\" class=\"permalink\"><time datetime=\"2011-07-19T15:48:22\">2011-07-19T15:48:22</time></a></p>\n</div>\n\n\n<div class=\"content\">Agreed with DBos. Would love to see Badger as an official service, especially with the new Campus Reps program that Jason Haas is rebooting as well as with the Mozilla Representatives program. Also you might get a badge for contributing to the Join Mozilla program? So many great uses for us.</div>\n\n\n</li>\n<li class=\"comment\" id=\"comment-278082903\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"\"><img src=\"http://disqus.com/api/users/avatars/interstar.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"\">interstar</a>\n</div>\n\n\n<p><a href=\"#comment-278082903\" class=\"permalink\"><time datetime=\"2011-08-05T03:15:39\">2011-08-05T03:15:39</time></a></p>\n</div>\n\n\n<div class=\"content\">Hi Les,\nVery very interesting. \nI was just thinking that there needed to be something like the Open Badges project today. (I'd even got as far as knocking up a data-model in web2py.) And then I saw this.\nI quickly cloned and tried out your app with an ordinary Django project but it's blowing up without jingo and I guess other Playdoh related modules. Are you committed to Playdoh for Badger2 ?\n</div>\n\n\n<ul class=\"comments\">\n<li class=\"comment\" id=\"comment-278514925\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://decafbad.com/\"><img src=\"http://disqus.com/api/users/avatars/lmorchard.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://decafbad.com/\">Les Orchard</a>\n</div>\n\n\n<p><a href=\"#comment-278514925\" class=\"permalink\"><time datetime=\"2011-08-05T18:05:31\">2011-08-05T18:05:31</time></a></p>\n</div>\n\n\n<div class=\"content\">I'm committed to Playdoh insofar as my initial users will probably be my co-workers at Mozilla, who are all building Playdoh-based sites.\nBut, there's no reason why it shouldn't eventually work with vanilla Django. It's using core template loaders and shortcuts, so switching over to standard stuff shouldn't be an issue for the views and models.\nI'm hoping at some point to put together some more Django-conventional template tags and templates toward that end, unless someone gets to it before me in a pull request (patches welcome!). Really, I think the template tags are the more important thing, since any templates out of the box will likely get overridden on a real site.</div>\n\n\n</li>\n</ul>\n\n\n</li>\n<li class=\"comment\" id=\"comment-301119028\">\n<div class=\"meta\">\n<div class=\"author\">\n<a class=\"avatar image\" rel=\"nofollow\" href=\"http://www.integrating-technology.org/\"><img src=\"http://disqus.com/api/users/avatars/nelliemuller.jpg\" width=\"\" height=\"\"></a>\n<a class=\"avatar name\" rel=\"nofollow\" href=\"http://www.integrating-technology.org/\">Dr. Nellie Deutsch</a>\n</div>\n\n\n<p><a href=\"#comment-301119028\" class=\"permalink\"><time datetime=\"2011-09-02T14:07:45\">2011-09-02T14:07:45</time></a></p>\n</div>\n\n\n<div class=\"content\">I love the idea, Leslie.&nbsp; I've been heading a self-funded organization that provides free online professional development workshops for educators around the world since 2006. We need badges for our graduates.&nbsp; Let me know how I can be of help. </div>\n\n\n</li>\n</ul>\n\n\n</div>\n\n\n",
  "body": "**TL;DR**: <em>A year ago, I said I wanted to build a badging service\r\nfor the Mozilla community, so we could all celebrate how awesome we\r\nall are. Well, I putzed around and didn't get far, so I'm starting\r\nover with something more immediately useful.</em>\r\n\r\n<img src=\"4f940d2c9308.png\" style=\"width:98%; display: block\" />\r\n\r\n<em>(This is an awesome illustration by [Sean\r\nMartell](http://seanmartell.com/), used entirely without permission.\r\nI'll take it down if anyone gets mad.)</em>\r\n\r\nAlmost a year ago, [I wrote about building a badging service for\r\nall of Mozilla][badger-paper]. \r\n\r\nIn a nutshell, I left the [2010 Mozilla Summit](http://www.flickr.com/photos/gen/4784616521/)\r\nwanting to build a tool that empowered people to craft social objects\r\nrepresenting achievement and gratitude, and give them to each other.\r\n\r\nSince then, I've [played around with a prototype in Django with\r\nPinax][badger1].  But, I abandoned that thing due to getting super\r\nbusy with the Firefox 4 release. It also didn't help that I was a\r\nDjango newb and that I got caught up in screwing around with shiny\r\nthings like [Pinax][] and [Lettuce][] and neglected the actual feature\r\nset.\r\n\r\nSo now, finally, [I'm picking the thread back up again][badger2]. This\r\ntime, with a little less ambition and a few more practical aims.\r\n\r\n### Make something more useful right away\r\n\r\nWhile I *have* spent some dangerous time screwing around with shinies like\r\n[Vagrant][], [Puppet][], and [Playdoh][], I think I've gotten that\r\nmostly out of my system and have gotten down to work [as of last\r\nnight][work].\r\n\r\n[work]: https://github.com/lmorchard/badger2/commits/master\r\n\r\nRather than build a Grand Central Station for badges, I've reset my\r\ngoals to a progression of practical results:\r\n\r\n* Build a reusable Django app that supports some basic use cases of\r\n  creating and awarding badges to users.\r\n* Add [Activity Stream][]s narrating [badge claims][]\r\n* Add support for [PubSubHubbub][push] with Badger activity streams\r\n* Add a REST API, maybe with OAuth\r\n* Accept badges for local users, via [PuSH][] from\r\n  external sites\r\n* See what the [Open Badges Project][] is up to, and how Badger can\r\n  fit in with their goals.\r\n\r\n[badge claims]: http://wiki.activitystrea.ms/w/page/27189812/Badge\r\n[Open Badges Project]: https://wiki.mozilla.org/Badges\r\n\r\nThe idea here is to make Badger a practical, reusable, drop-in app for\r\nexisting sites—preferably (but not necessarily) the\r\n[Playdoh][]-flavored sites we're building at Mozilla. Then,\r\nincrementally and optionally empower a Badger-enabled site to become a\r\nbadge hub by accepting reports of badge claims from other\r\nBadger-enabled sites.\r\n\r\n### Take baby steps to federation\r\n\r\nSo, for example, let's say we dropped Badger into a few sites like\r\nthese:\r\n\r\n* <http://developer.mozilla.org>;\r\n* <http://support.mozilla.com>;\r\n* <http://addons.mozilla.org>.\r\n\r\nAt first, Badger would just augment those sites with badging\r\nfacilities for their respective user bases. That could fill some needs\r\nright away.\r\n\r\nThen, say we built a site that offered personal profiles to members of\r\nthe Mozilla community.  With the [Activity Stream][] and [PuSH][]\r\naugmentations, users could connect their profiles with each of the\r\nother Mozilla sites they use.  That way, whenever they claim a badge\r\nout there, it gets delivered to their community profile.\r\n\r\n### Why bother federating at all?\r\n\r\nIf the only cross-site goal to build an all-in-one display case for\r\nbadges on a community profile, I could just build JSON feeds and wrap\r\nthem in a JS-based widget. In fact, [a JSON-formatted Activity\r\nStream][as-json] will work nicely for that. Drop that into the profile\r\npage, and we're done.\r\n\r\nThere are lots of reasons to federate. But, at least one thing not supported by\r\nthis solution are [meta-badges][]. That is, badges awarded for badges.\r\n\r\nLet's say you close 100 bugs on Bugzilla, answer 100 questions on\r\nSUMO, edit 100 pages of documentation on MDN, and author 100 add-ons.\r\nAnd, let's say you get badges on the respective sites for all of those\r\nactivities.\r\n\r\nWell, now, I'd like to give you a badge on your community profile for\r\nbeing a **Mozilla Superhero**. I could just do that by hand, having\r\nobserved all your greatness. But, I'd rather the system just do that\r\nautomatically.\r\n\r\nIf your community profile treated all your badges from your chosen affiliated\r\nsites as first-class citizens, then I could build the meta-badge\r\ntrigger right there.\r\n\r\nOf course, I could also write a program that monitors badge feeds from\r\nvarious sites. Then, use the community profile site's Badger API to\r\nissue a badge when the conditions are met. But, as maintainer of the\r\nmonitoring program, I'd have to keep track of what feeds where count\r\nfor which people, which could be a mess.\r\n\r\nThere's still some thinking to do here.\r\n\r\n### What about identity and co-opting badges?\r\n\r\nI'm still thinking through how someone connects a profile to other\r\nsites. As in, how can Badger ensure that the owner of the community\r\nprofile is also the owner of a badge claim feed on MDN?  Maybe some\r\nkind of OAuth dance that results in a [PuSH][] subscription between\r\nsites?\r\n\r\nConsider the least-capable federation case: a Badger-compatible feed\r\nhosted as a static file on Amazon S3. And, by Badger-compatible, I\r\nmean an [Activity Stream][] that contains [badge claims][]. You\r\nshouldn't need my specific implementation of Badger-in-Django to\r\nproduce one of those.\r\n\r\nAlthough [PuSH][] is still the ideal case (I think), occasional\r\npolling of an [Activity Stream][] feed should still be supported. If a\r\nuser connects that up to their community profile, we just have to take\r\ntheir word for it. We'd rely on community members to\r\nflag stinkers trying to claim badge feeds that aren't theirs.\r\n\r\nBeyond that, there's probably some crypto-voodoo we can invoke here,\r\nfor cases where badge claim validity really matters—as opposed to the\r\nfun and games I have in mind for Mozilla.\r\n\r\n### What about the Open Badges Project?\r\n\r\nFrom various conversations over the past year, it sounds to me like\r\nthe [Open Badges Project][] is getting the parts in place to do even\r\nmore interesting federation of badges that gives ownership of the\r\nbadge hub to the user.\r\n\r\nIn that scenario, you have a backpack in your browser and can carry\r\nyour badge claims with you between sites with no prior coordination\r\nbetween the sites themselves. \r\n\r\nThis sounds like something in which Badger should be able to\r\nparticipate, eventually. If not as a hub, Badger should at least offer\r\nthe tools to create and award badges that work with the user-owned hub\r\nscheme.\r\n\r\n### So, what next?\r\n\r\nNow that I've written all this out, I need to hack on it. If you're\r\ninterested in this stuff, let me know. That way, it'll look like\r\nsomeone might actually find this stuff handy when I get something\r\nworking!\r\n\r\n[as-json]: http://activitystrea.ms/specs/json/1.0/\r\n[meta-badges]: http://decafbad.com/2010/07/badger-article/#section-105\r\n[activity stream]: http://activitystrea.ms\r\n[push]: http://code.google.com/p/pubsubhubbub/\r\n[vagrant]: http://vagrantup.com\r\n[puppet]: http://pupetlabs.com\r\n[playdoh]: https://github.com/mozilla/playdoh\r\n[pinax]: http://pinaxproject.com\r\n[lettuce]: http://lettuce.it\r\n[badger-paper]: http://decafbad.com/2010/07/badger-article/\r\n[badger1]: https://github.com/lmorchard/badger\r\n[badger2]: https://github.com/lmorchard/badger2\r\n\r\n<!-- vim: set wrap wm=5 syntax=mkd textwidth=70: -->\r\n\r\n<div id=\"comments\" class=\"comments archived-comments\">\r\n            <h3>Archived Comments</h3>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-256743407\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=afd2a7efeaad01509a571bae031dfc5c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">David Boswell</a>\r\n                </div>\r\n                <a href=\"#comment-256743407\" class=\"permalink\"><time datetime=\"2011-07-19T01:18:24\">2011-07-19T01:18:24</time></a>\r\n            </div>\r\n            <div class=\"content\">Very cool to see an update on Badger.  I'm definitely interested in this and would love to see something like this show up in the Mozillians phonebook that will be ready soonish :)\r\n\r\nDavid</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-257292756\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://briks.si\"><img src=\"http://www.gravatar.com/avatar.php?gravatar_id=29e2f1888cdcc9c451d32ab902d5a19c&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://briks.si\">Brian King</a>\r\n                </div>\r\n                <a href=\"#comment-257292756\" class=\"permalink\"><time datetime=\"2011-07-19T15:12:01\">2011-07-19T15:12:01</time></a>\r\n            </div>\r\n            <div class=\"content\">Over at the Mozilla Reps program, we are discussing the possible use of badges - https://wiki.mozilla.org/ReMo</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-257331862\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://kanai.net/weblog/\"><img src=\"http://disqus.com/api/users/avatars/gkanai.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://kanai.net/weblog/\">Gen Kanai</a>\r\n                </div>\r\n                <a href=\"#comment-257331862\" class=\"permalink\"><time datetime=\"2011-07-19T15:48:22\">2011-07-19T15:48:22</time></a>\r\n            </div>\r\n            <div class=\"content\">Agreed with DBos. Would love to see Badger as an official service, especially with the new Campus Reps program that Jason Haas is rebooting as well as with the Mozilla Representatives program. Also you might get a badge for contributing to the Join Mozilla program? So many great uses for us.</div>\r\n            \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-278082903\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"\"><img src=\"http://disqus.com/api/users/avatars/interstar.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"\">interstar</a>\r\n                </div>\r\n                <a href=\"#comment-278082903\" class=\"permalink\"><time datetime=\"2011-08-05T03:15:39\">2011-08-05T03:15:39</time></a>\r\n            </div>\r\n            <div class=\"content\">Hi Les,\r\n\r\nVery very interesting. \r\n\r\nI was just thinking that there needed to be something like the Open Badges project today. (I'd even got as far as knocking up a data-model in web2py.) And then I saw this.\r\n\r\nI quickly cloned and tried out your app with an ordinary Django project but it's blowing up without jingo and I guess other Playdoh related modules. Are you committed to Playdoh for Badger2 ?\r\n\r\n</div>\r\n            \r\n        <ul class=\"comments\">\r\n            \r\n        <li class=\"comment\" id=\"comment-278514925\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://decafbad.com/\"><img src=\"http://disqus.com/api/users/avatars/lmorchard.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://decafbad.com/\">Les Orchard</a>\r\n                </div>\r\n                <a href=\"#comment-278514925\" class=\"permalink\"><time datetime=\"2011-08-05T18:05:31\">2011-08-05T18:05:31</time></a>\r\n            </div>\r\n            <div class=\"content\">I'm committed to Playdoh insofar as my initial users will probably be my co-workers at Mozilla, who are all building Playdoh-based sites.\r\n\r\nBut, there's no reason why it shouldn't eventually work with vanilla Django. It's using core template loaders and shortcuts, so switching over to standard stuff shouldn't be an issue for the views and models.\r\n\r\nI'm hoping at some point to put together some more Django-conventional template tags and templates toward that end, unless someone gets to it before me in a pull request (patches welcome!). Really, I think the template tags are the more important thing, since any templates out of the box will likely get overridden on a real site.</div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </li>\r\n    \r\n        <li class=\"comment\" id=\"comment-301119028\">\r\n            <div class=\"meta\">\r\n                <div class=\"author\">\r\n                    <a class=\"avatar image\" rel=\"nofollow\" \r\n                       href=\"http://www.integrating-technology.org/\"><img src=\"http://disqus.com/api/users/avatars/nelliemuller.jpg\"/></a>\r\n                    <a class=\"avatar name\" rel=\"nofollow\" \r\n                       href=\"http://www.integrating-technology.org/\">Dr. Nellie Deutsch</a>\r\n                </div>\r\n                <a href=\"#comment-301119028\" class=\"permalink\"><time datetime=\"2011-09-02T14:07:45\">2011-09-02T14:07:45</time></a>\r\n            </div>\r\n            <div class=\"content\">I love the idea, Leslie.  I've been heading a self-funded organization that provides free online professional development workshops for educators around the world since 2006. We need badges for our graduates.  Let me know how I can be of help. </div>\r\n            \r\n        </li>\r\n    \r\n        </ul>\r\n    \r\n        </div>\r\n    ",
  "parentPath": "./content/posts/archives/2011/2011-07-18-badger2",
  "path": "2011/07/18/badger2",
  "thumbnail": "/2011/07/18/badger2/4f940d2c9308.png",
  "needsBuild": true,
  "prevPostPath": "2011/06/11/five-years",
  "prevPostTitle": "Five years",
  "nextPostPath": "2011/10/04/putting-clouds-in-boxes",
  "nextPostTitle": "Putting clouds in boxes for webdevs at Mozilla"
}