Difference between revisions of "Developer Challenges"

From Creative Commons
Jump to: navigation, search
(Developer Aids and Libraries)
m (Reverted edits by Babsesun (talk) to last revision by Boetbre)
 
(47 intermediate revisions by 11 users not shown)
Line 1: Line 1:
 
[[Category:Developer]]
 
[[Category:Developer]]
[[Category:Tech Challenges]]
 
  
We have ideas. Lots of ideas.  And some of them might just be darn cool.  So we challenge you, dear developer, help us out and win fame and glory (and maybe, just maybe, [http://creativecommons.org/weblog/entry/4293 a job]).
+
{{Infobox|'''Here for [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 Google Summer of Code]? See [[Summer of Code 2012]] for details about what we're looking for in [http://www.windows8softwares.com applications] this year.  Please read that page... most of the ideas below do not apply this year.'''}}
  
Some challenges have been met and completed -- those have been moved to the [[Completed Tech Challenges]] page.
+
{{Infobox|This page is for ideas and wishes: technology projects that would be beneficial for Creative Commons and our community, but which we don't have resources to build ourselves. If you've found a '''bug''' or have a feature request for existing tools/services, please report it in the [http://code.creativecommons.org/issues bug tracker].}}
  
== [[How to Participate]] ==
+
We have ideasLots of ideasAnd some of them might just be darn coolSo we challenge you, dear developer, help us out and win fame and glory (and maybe, just maybe, [http://creativecommons.org/weblog/entry/4293 a job]).
 
 
Please read the [[How to Participate]] page in order to read how to contribute to the various projects.
 
 
 
== [[Embedding Specifications and Implementations]] ==
 
 
 
== [[Developer Aids and Libraries]] ==
 
 
 
=== [[License metadata validation web service]] ===
 
 
 
Creative Commons offers [[Creative Commons Web Services|web services]] for integrating license selection into applications, and we have a [http://validator.creativecommons.org License Metadata Validator].  How about mashing the two of them up?  A web service which allowed applications to validate license metadata would allow applications to integrate another aspect of CC licensing with minimal effort.
 
 
 
=== [[CC Web Service Wrappers]] ===
 
 
 
We currently offer language-specific wrappers for the [[Creative Commons Web Services]] in Python, Java and PHP.  Help make it easier for other developers to integrate license selection by writing a wrapper library in your language of choice.  Lisp, anyone?
 
 
 
A successful implementation will include a small driver application which demonstrates how the wrapper can be used for license selection.  See [[Web Services Client Implementations]] for information on our existing implementations.
 
 
 
=== [[APIs for Creative Commons license metadata]] ===
 
 
 
'''3 implementations'''
 
 
 
We provide RDF metadata for each our our licenses and the public domain dedication. Many developers will find it easiest to access this metadata via a programming language-specifc API. [http://cclicense.sourceforge.net/ cclicense.php] is an example of such an API for PHP web developers. Ada, C++, E, Java, Lisp, ML, Perl, Ruby, Smalltalk, Tcl (and many more!) are all up for grabs. Your wrapper should also include a small driver program to demonstrate how it can be used to pull license information.  Bonus points if your implementation can dynamically discover and wrap new licenses using the Creative Commons metadata vocabulary.
 
 
 
'''Update:''' APIs for [http://workspaces.gotdotnet.com/cclib C#] (Steve Griffin) and [http://yergler.net/projects/ccrdf/ Python] (Nathan Yergler) have been created in response to this challenge.
 
 
 
=== License metadata in XML formats ===
 
 
 
=== License metadata in SMIL and SVG ===
 
 
 
SMIL (multimedia playlists) includes support for [http://www.w3.org/TR/smil20/metadata.html#edef-metadata RDF/XML metadata]. We need examples of including license metadata in SMIL for the purposes of denoting that a SMIL playlist itself is published under a Creative Commons license or that individual components of the playlist are licensed. Even better if you can use dc:source to specify parent playlists/works. (SVG has similar support for [http://www.w3.org/TR/SVG11/metadata.html RDF/XML metadata].) Read more about the motivation in this [http://lists.ibiblio.org/pipermail/cc-metadata/2003-October/000185.html cc-metadata] post.
 
 
 
==== Implementations ====
 
 
 
* Lucas Gonze has created a [http://gonze.com/cc-smil.html CreativeCommons SMIL Module]
 
* [[Inkscape]] includes support for SVG metadata.
 
* [http://search.cpan.org/~bryce/SVG-Metadata-0.28/ SVG::Metadata] by Bryce Harrington is a PERL module for including metadata inside an SVG (used by [http://www.openclipart.org Open Clip Art Library].
 
 
 
==== TODO ====
 
 
 
* generalize to all xml formats, split into separate challenges
 
 
 
=== [[Companion File metadata specification]] ===
 
 
 
It is impractical to embed metadata in some file formats, so we need a specification for a "companion" metadata file that would define license and other metadata information.   
 
 
 
=== Operating System Support For Creative Commons Metadata ===
 
 
 
Recent and upcoming operating systems will have built-in support for application-level metadata. See [http://developer.gnome.org/arch/file/metadata.html Gnome], [http://msdn.microsoft.com/longhorn/understanding/pillars/winfs/default.aspx?pull=/msdnmag/issues/04/01/WinFS/default.aspx Vista], and [http://www.apple.com/macosx/tiger/searchtechnology.html Tiger]. How can Creative Commons take advantage of these technologies to enable CC-aware search and applications on the next generation desktop? Wanted: research briefs on how to expose CC license info for objects in each major OS or frameworkSupport for the external metadata files should be included.
 
 
 
== Content Creation Applications ==
 
 
 
=== [[Build Creative Commons licensing into more content creation applications]] ===
 
 
 
We have a [[Applications Using CC|list of existing applications]] that allow users to choose a Creative Commons license for content created within the applications. Any application in which a user creates "content" is a candidate, from multimedia authoring systems to weblog publishing software. We've made it easy to offer Creative Commons licenses to users via our [http://creativecommons.org/technology/developerdocs satellite licensing interface].
 
 
 
=== [[Build licensing into web content applications]] ===
 
 
 
The moment of content creation is the sweet spot for CC assignment. Imagine if the top 10 authoring tools (blogs, wikis, cmses, etc) all shipped with proper CC support... even if a small fraction of site administrators enabled this feature, the ammount of content which would be assigned CC licenses a decade from now would be staggering.
 
 
 
Pick a project - [http://opensourcecms.org opensourcecms]
 
(wordpress, *nuke*, cmses, drupal, [http://plone.org/products/plone/roadmap/136 Plone], etc.)
 
 
 
=== Open source application support for XMP and Creative Commons license info ===
 
 
 
'''1 implementation'''
 
 
 
[[XMP]] is an open, RDF-based format that can embed metadata in PDF files. Currently only [[XMP Help|Adobe applications]] support such embedding. Similar [[XMP]] and Creative Commons support should be added to [http://www.openoffice.org/ Open Office] and other open source document creation applications.
 
 
 
'''Update''': Maarten Sneep has created a [http://www.math.utah.edu/tex-archive/macros/latex/contrib/xmpincl/ macro] for embedding XMP in files created by pdflatex.
 
 
 
''TODO'' Retire and split between embedding and content creation apps
 
 
 
== Content Display, Player, and Sharing Applications ==
 
 
 
=== [[Browser Plugin|Browser toolbar or plugin that extracts and displays license metadata embedded in a page]] ===
 
 
 
'''1 implementation'''
 
 
 
You've probably seen our "some rights reserverd" and "no rights reserved" (for public domain works) buttons on many web pages, but there's more. Whenever a user copies HTML generated by our [http://creativecommons.org/license/ license selection application] they get the button and also a block of metadata describing the licensed work and the license it is offered to the public under. You can't normally see that information without viewing the web page's source. A toolbar or plugin that exploited this hidden information could take many forms. One possibility: If a page has valid license metadata, place a (cc) icon on the toolbar. Mousing over the icon brings up a transient window which displays the [http://creativecommons.org/learn/licenses/ license characteristics] associated with the license and any descriptive metadata also present.
 
 
 
'''Update''': Nathan Yergler has created [http://www.yergler.net/projects/mozcc/ mozCC], a browser extension for Mozilla-based browsers. It's a start, but we know there are other browser in use.  So how about similar functionality for IE, Safari, Opera, Konqueror, Epiphany or something else?
 
 
 
=== [[Integrate CC Metadata into Browser Aides]] ===
 
 
 
CC isn't the only metadata game in town -- browser tools like the [http://toolbar.google.com/ Google Toolbar], [http://simile.mit.edu/piggy-bank/ Piggy Bank], the [http://download.alexa.com/index.cgi Alexa Toolbar] and others all expose additional information about a page in your browser.  A successful answer to this challenge would explore adding CC support to an existing browser aide and make it happen. 
 
 
 
=== Media player and file sharing applications that read, verify, and display license claims embedded in files ===
 
 
 
Media players and file sharing applications should read, verify and display [[Nonweb Tagging|license claims embedded in files]]. Two example scenarios:
 
 
 
[[Media Player]]:
 
When playing a [[MP3]] or [[OGG]] file, the player software should look for a license claim and attempt to verify the claim against the verification URL specififed in the claim. If RDF metadata at the verification URL does verify the embedded claim, the player should give some indication of such. For example, a (cc) icon in the player's imitation LCD screen. The icon could be an active link to the verification page. Also, any work metadata found at the verification URL may be used to further enhance track information displayed to the user. Any single file should only need to be verified once, not every time it is played.
 
 
 
[[File Sharing Client]]:
 
A file sharing client could do everything that a media player does above (indeed, often a media player is built into file sharing clients). In addition, verified licenses should be included in search results. Again, a (cc) icon, or perhaps a green light (sharing ok), might be displayed next to search results. Note that in search results all metadata (including everything from filename to license information) comes from other clients. After downloading a file, the local client should verify a license claim for itself before displaying a positive indicator in a "media library" view or exporting license metadata in respose to external searches. Again, any single file need only be verified once.
 
 
 
[http://aetherial.net/Verify/ Verify] is a program for OS X by Oyez tech lead Chris Karr that demonstrates some of the above features in a stand-alone application.
 
 
 
[http://www.limewire.com/ Limewire], a popular file-sharing client, has integrated CC support into their [http://www.limewire.org/ Open Source codebase]Is there's the only way to do it?  Probably not, but it should give you an idea or three.
 
 
 
=== [[Advanced Media Player Search/Browse UI]] ===
 
 
 
Searching by artist or album is so 2005; we challenge you to implement a user interface for a media player which allows searching and browsing files based on CC metadata properties or other interesting metadata.  One (perhaps the preferred) way to meet this challenge would be to utilize whatever OS level support is available.
 
 
 
=== [[Automatic Sense Candy and "Art" (Re-)generation]] ===
 
 
 
'''1 implementation'''
 
 
 
Screen savers, collage makers, mood music generators and similar could make excellent use of CC-licensed work, and automatically create derivative works. Networked and "smart" versions thereof could usher in a new age of bad art, and some great art. This challenge, inspired by Nathan Yergler's [http://yergler.net/projects/ccsaver/ ccSaver], is one that could use many highly variable implementations.
 
 
 
See the challenge detail page for content pools you can draw from.
 
 
 
== Distribution & Deployment ==
 
 
 
=== [[Distro repositories]] ===
 
 
 
Help spread CC software by packaging and submitting it to Linux distro repositories.  We need people who are familiar with the process to help shepard [[ccPublisher]], [[http://yergler.net/projects/mozcc mozCC]], [[ccHost]], et al, into the official distro repositories.  Contact [[NathanYergler]] if you're interested some knowledge about this and are interested in working on it.
 
 
 
=== [[LiveCD]] ===
 
 
 
[http://live.gnome.org/GnomeLiveCd Gnome] has one.  So does [http://mono-live.com Mono].  Why not CC?  A successful completion of this challenge would produce an ISO image for a bootable system that would be filled with CC licensed content and whatever the state-of-the-art in CC enabled applications is at that time.  You might base it on Knoppix, Ubuntu's Live CD, or roll your own.
 
 
 
== License-aware Search Applications ==
 
 
 
=== Add license search to a major commercial search engine ===
 
 
 
Currently we have a [http://creativecommons.org/technology/search demonstration search] that works by telling AlltheWeb to limit results to pages that link to Creative Commons licenses. While useful, this is far from our vision of a metadata-aware search engine.
 
 
 
The first requirement for a Creative Commons license-aware search engine is that license metadata (RDF embedded in pages) must be indexed. It wouldn't be necessary to index arbitrary RDF initially -- indexing only Creative Commons license metadata would be a good first step along the path to a Semantic Web-enabled search engine.
 
 
 
Once you start indexing license metadata, you can do two obvious things with it:
 
 
 
Provide users with an interface to filter their results by license or license characteristc. The aforementioned AlltheWeb demonstration interface is an example of the latter.
 
 
 
Display license information in search results. This could be done even if a query does not involve a license filter. If you have license information for a result, display the license in proximity to the result.
 
 
 
As you index and understand more metadata, you'll be able to go beyond these basics, with enhanced format or domain-specific searches and richly annotated results.
 
 
 
We've started a benevolent cycle by making it painless and natural for people to publish quality metadata (automatically included in HTML generated for cut&paste publishing by our [http://creativecommons.org/license/ license selection application]). Continue the cycle by enhancing search with metadata -- providing stimulus for users and other applications to generate yet more and better metadata.
 
 
 
 
 
=== CC search for content repository websites ===
 
 
 
eg improve http://flickr.com/creativecommons
 
  
could be done by outside developers in cases where web service api permits
+
Some challenges have been met and completed, but fret not -- there are still lots of opportunities for fame and glory.
  
=== Write a custom Creative Commons license-aware search engine ===
+
For more ways to participate take a look at the the [[Developers]] portal.
  
'''1 implementation'''
+
{{#forminput:Challenge|35||Add a New Challenge}}
  
You'd have to work at a commercial search engine to tackle the previous challenge. However, an individual or small team could build a search engine exclusively for Creative Commons-licensed content, much as several have been built exclusively for searching blogs.
 
  
Update: Prototype up at [http://search.creativecommons.org/ search.creativecommons.org]. Help improve this search engine at its [http://cctools.sourceforge.net/ sourceforge project].
+
== Google Summer of Code Ideas ==
  
''TODO'' feature requests for cc/nutch
+
We think these ideas are right-sized for Google [[Summer of Code]] projects.  We'll definitely accept applications for ideas that aren't on this list, but these are a good starting point.
  
=== [[Source Query]] ===
+
{{#ask:
 +
[[Category:Challenge]]
 +
[[Has Challenge Type::Developer]]
 +
[[Is Complete::false]]
 +
[[Has Tag::gsoc]]
 +
| ?Related To
 +
}}
  
"Who remixed me?" as the new "Who linked me?" This is along the similar lines as trackbacks for blogs which are used to see who is sampling which blogs.
+
== Open Challenges ==
  
=== Discovery tools ===
+
{{#ask:
 +
[[Category:Challenge]] [[Has Challenge Type::Developer]] [[Is Complete::false]]
 +
| ?Related To
 +
| ?Has Tag
 +
}}
  
Add support for Creative Commons licensing to content discovery applications such [http://irate.sourceforge.net/ iRate] which help you find interesting media based upon your favorite playlists, friends choices, and what is popular.
+
== Completed Challenges ==
 +
{{#ask:
 +
[[Category:Challenge]]
 +
[[Has Challenge Type::Developer]]
 +
[[Is Complete::true]]
 +
| ?Related To
 +
| ?Has Tag
 +
}}

Latest revision as of 20:38, 15 September 2013


Here for Google Summer of Code? See Summer of Code 2012 for details about what we're looking for in applications this year. Please read that page... most of the ideas below do not apply this year.

This page is for ideas and wishes: technology projects that would be beneficial for Creative Commons and our community, but which we don't have resources to build ourselves. If you've found a bug or have a feature request for existing tools/services, please report it in the bug tracker.

We have ideas. Lots of ideas. And some of them might just be darn cool. So we challenge you, dear developer, help us out and win fame and glory (and maybe, just maybe, a job).

Some challenges have been met and completed, but fret not -- there are still lots of opportunities for fame and glory.

For more ways to participate take a look at the the Developers portal.

{{#forminput:Challenge|35||Add a New Challenge}}


Google Summer of Code Ideas

We think these ideas are right-sized for Google Summer of Code projects. We'll definitely accept applications for ideas that aren't on this list, but these are a good starting point.

{{#ask:Has Challenge Type::Developer Is Complete::false Has Tag::gsoc | ?Related To }}

Open Challenges

{{#ask: Has Challenge Type::Developer Is Complete::false | ?Related To | ?Has Tag }}

Completed Challenges

{{#ask:Has Challenge Type::Developer Is Complete::true | ?Related To | ?Has Tag }}