Difference between revisions of "Summer of Code 2013"

From Creative Commons
Jump to: navigation, search
Line 12: Line 12:
  
 
; Knowledge Prerequisite
 
; Knowledge Prerequisite
: JavaScript, node.js
+
: JavaScript, HTML/CSS, node.js
  
 
; Skill level
 
; Skill level
Line 43: Line 43:
 
=== Project: JS Attribution Helper ===
 
=== Project: JS Attribution Helper ===
  
* Code to dynamically detect CC content on Web pages and add CC buttons/notices.
+
; Brief explanation
 +
: All CC licenses require attribution when using the licensed content. We've found that for most people, though, it's too cumbersome to do it correctly--even even when they have the best intentions. So we're interested in ways of making attribution completely automatic. This is where the JS Attribution Helper comes in: it scans content on a page, and if it determines that any of it is CC-licensed, it adds attribution automatically.
 +
 
 +
; Expected results
 +
: A JS library that works in conjunction with a service to scan media on a Web page, and 1) determine if the content is CC licensed by looking at embedded metadata or other methods (outside of the scope of this project), and 2) adds attribution information in a clean, unobtrusive manner for any CC content found.
 +
 
 +
; Knowledge Prerequisite
 +
: JavaScript, node.js
 +
 
 +
; Skill level
 +
: medium.
 +
 
 +
; Mentor
 +
: Dan Mills or other CC tech staff member
  
 
=== Project: Metadata Embedding Library ===
 
=== Project: Metadata Embedding Library ===
  
* Code to embed licensing metadata inside various file formats (e.g., .png).
+
; Brief explanation
 +
: In order to make it easier to track CC licensed content, it's possible to embed metadata into files (see our pages on [[XMP]] and [[Category:Filetype|filetype support]]). However, it's difficult for users to do this. We'd like to build a service that takes media files and is able to add licensing metadata, and the first step is to create a library that can do the low-level work.
 +
 
 +
; Expected results
 +
: A library that is able to get/set XMP metadata on as many file formats as possible. We'll make a prioritized list of file types and agree on a core set before you start. JS is preferred for the library, but it could be written in some other language and have JS bindings.
  
=== Project: Donation Widget ===
+
; Knowledge Prerequisite
 +
: JavaScript, possibly other languages/frameworks (see above).
  
* Systems that enable donations to content authors.
+
; Skill level
 +
: medium.
 +
 
 +
; Mentor
 +
: Dan Mills or other CC tech staff member
 +
 
 +
=== Project: "Kudos" Widget ===
 +
 
 +
; Brief explanation
 +
: There are many reasons why content makers decide to contribute their content to the commons by applying a CC license. We'd like to experiment what it would be like to add one more: direct "kudos" from Website visitors to them (in the future, we can expand the system to include different ways of saying "thanks"--including perhaps small donations).
 +
 
 +
: To that end, we're looking to build a widget that content authors could embed on their sites, and some basic infrastructure to enable the system to work. We're particularly interested in whether we could keep track of the reuse/remix chain for works (content that gets used to make new content), and tie that into the widget so that when a site visitor gives thanks, all of the authors of a work can get that warm fuzzy feeling.
 +
 
 +
; Expected results
 +
: A Website/service that lets content authors register, and gives them a button they can embed on their pages. When clicked, the button presents a few "kudos" messages, and/or a text box where the visitor can add a personalized message. Authors get an email notification, and can visit the site to view all their "kudos".
 +
 
 +
; Knowledge Prerequisite
 +
: JavaScript, HTML/CSS, node.js
 +
 
 +
; Skill level
 +
: medium.
 +
 
 +
; Mentor
 +
: Dan Mills or other CC tech staff member

Revision as of 05:56, 2 April 2013

Creative Commons is participates in Google's Summer of Code as a mentoring organization. Student submissions for SoC 2013 will take place April-May; see the GSoC 2013 homepage for more details.

This year Creative Commons is planning to launch new products and tools to help authors and consumers use, share, and remix content. Here are some ideas to get you started.

Project: Media Widget

Brief explanation
The CC media widget will allow content from a user's CC homepage (a product we're working on) to be embedded into other sites, like Tumblr, WordPress, etc. Our main interest is in specialized widgets that excel at displaying particular media types, not a generic "file list" widget. For example, a great image widget probably looks and feels different from an academic paper widget.
Expected results
A widget that is able to take CC licensed files and their metadata and visualize it in neat ways that users find compelling. The widget must also include the licensing metadata/attribution information: which license it's released under, the author's name/handle, and so on. Clever ways of displaying this information in a way that is accessible but not annoying will be a plus.
Knowledge Prerequisite
JavaScript, HTML/CSS, node.js
Skill level
medium to low.
Mentor
Dan Mills or other CC tech staff member

Project: Media Fingerprinting Library

Brief explanation
CC would prefer that all content on the Web include correct licensing metadata. Alas, that is not the case. So we're interested in code that will allow us to identify a given item across the Web, even if there's no metadata alongside it. The tricky part is: people often crop or resize images, clip videos, re-encode content, or quote only pieces of text. So a simple hash is not sufficient: we need more intelligent fuzzy matching. That's what this project is about.
Expected results
A library that provides two methods: 1) Given a media file, output a fingerprint, and 2) Given a file and a fingerprint, return the likelihood of the file matching the original file. You can focus your efforts on only one or two media types, or you can do more if it's possible.
The library can be in a low-level language (C/C++) or you can use a higher-level language (JavaScript) if it's feasible. Speed is not a major concern at this point.
Bonus: An additional API/method to detect content inside other files (e.g., a PowerPoint file that includes a CC licensed image, or a still image inside a video).
Knowledge Prerequisite
Media formats/encodings, JavaScript, C/C++.
Skill level
high.
Mentor
Dan Mills or other CC tech staff member

Project: JS Attribution Helper

Brief explanation
All CC licenses require attribution when using the licensed content. We've found that for most people, though, it's too cumbersome to do it correctly--even even when they have the best intentions. So we're interested in ways of making attribution completely automatic. This is where the JS Attribution Helper comes in: it scans content on a page, and if it determines that any of it is CC-licensed, it adds attribution automatically.
Expected results
A JS library that works in conjunction with a service to scan media on a Web page, and 1) determine if the content is CC licensed by looking at embedded metadata or other methods (outside of the scope of this project), and 2) adds attribution information in a clean, unobtrusive manner for any CC content found.
Knowledge Prerequisite
JavaScript, node.js
Skill level
medium.
Mentor
Dan Mills or other CC tech staff member

Project: Metadata Embedding Library

Brief explanation
In order to make it easier to track CC licensed content, it's possible to embed metadata into files (see our pages on XMP and). However, it's difficult for users to do this. We'd like to build a service that takes media files and is able to add licensing metadata, and the first step is to create a library that can do the low-level work.
Expected results
A library that is able to get/set XMP metadata on as many file formats as possible. We'll make a prioritized list of file types and agree on a core set before you start. JS is preferred for the library, but it could be written in some other language and have JS bindings.
Knowledge Prerequisite
JavaScript, possibly other languages/frameworks (see above).
Skill level
medium.
Mentor
Dan Mills or other CC tech staff member

Project: "Kudos" Widget

Brief explanation
There are many reasons why content makers decide to contribute their content to the commons by applying a CC license. We'd like to experiment what it would be like to add one more: direct "kudos" from Website visitors to them (in the future, we can expand the system to include different ways of saying "thanks"--including perhaps small donations).
To that end, we're looking to build a widget that content authors could embed on their sites, and some basic infrastructure to enable the system to work. We're particularly interested in whether we could keep track of the reuse/remix chain for works (content that gets used to make new content), and tie that into the widget so that when a site visitor gives thanks, all of the authors of a work can get that warm fuzzy feeling.
Expected results
A Website/service that lets content authors register, and gives them a button they can embed on their pages. When clicked, the button presents a few "kudos" messages, and/or a text box where the visitor can add a personalized message. Authors get an email notification, and can visit the site to view all their "kudos".
Knowledge Prerequisite
JavaScript, HTML/CSS, node.js
Skill level
medium.
Mentor
Dan Mills or other CC tech staff member