Top Banner
Stage d’application promotion 2009 SECOND YEAR INTERNSHIP Giannini Steren Host Organisation — Creative Commons Internship supervisor — Nathan R. Yergler Date of the internship — from June 9, to August 15, 2008 Date of the report — September 1, 2008 Final Report CREATIVE COMMONS 171 2nd Street third floor San Francisco, CA 94105 UNITED STATES ECOLE CENTRALE DE LYON Service des Relations Ext´ erieures 36, Avenue Guy de Collongue 69134 ECULLY CEDEX FRANCE
14

Creative commons internship report

Nov 28, 2014

Download

Career

Steren Giannini

Report of my summer internship at Creative Commons
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Creative commons internship report

Stage d’application promotion 2009

SECOND YEAR INTERNSHIP

Giannini Steren

Host Organisation — Creative CommonsInternship supervisor — Nathan R. Yergler

Date of the internship — from June 9, to August 15, 2008Date of the report — September 1, 2008

Final Report

CREATIVE COMMONS171 2nd Street third floorSan Francisco, CA 94105UNITED STATES

ECOLE CENTRALE DE LYONService des Relations Exterieures36, Avenue Guy de Collongue69134 ECULLY CEDEXFRANCE

Page 2: Creative commons internship report

Contents

Introduction 3

1 Background 41.1 What is Creative Commons? . . . . . . . . . . . . . . . . . . . . . . . 41.2 Why? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 An example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4 Other Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5 The internal structure . . . . . . . . . . . . . . . . . . . . . . . . . . 61.6 My team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 My work 72.1 Semantic MediaWiki . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.3 My Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.1.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 XHTML and RDFa validation . . . . . . . . . . . . . . . . . . . . . . 82.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.3 My Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3 License Tagger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.1 Background: liblicense . . . . . . . . . . . . . . . . . . . . . . 102.3.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.3 My work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 11

Conclusion 12

List of figures 13

Appendix 140.1 Creative Commons Organization Chart . . . . . . . . . . . . . . . . . 14

2

Page 3: Creative commons internship report

Introduction

As a second year student at Ecole Centrale de Lyon, I had to do an internship duringthe summer between my second and third year. Contrary to the one I did after myfirst year, this one was more focused on applying things I have learned.

My first goal was to find an internship in an English spoken country and in thecomputer science field. Taking this into account, I early started to contact com-panies abroad. As one may guess, finding this kind of internship is really difficult.Fortunately, I got a positive answer from Creative Commons, a non-profit organiza-tion based in San Francisco which I knew and followed for years. After struggling toget my Visa, I landed in June at the San Francisco international airport for a stayof about three months.

The present report describes my summer work at Creative Commons. It firstdetails the background of the company describing the ideas at stake and its projects.It moves then to the actual work I have done during the internship. Finally, Iconclude underlining the benefits of this internship and talking about my professionalfuture.

Unfortunately, even if this report covers my internship, I do not think it willreflect the actual human adventure this trip was for me.

Figure 1: The Creative Commons main logo

3

Page 4: Creative commons internship report

Chapter 1

Background

1.1 What is Creative Commons?

Creative Commons (also known as CC) is a non-profit organization mainly basedin San Francisco. The organization is devoted to expanding the range of creativeworks available for others to build upon legally and to share.

Creative Commons has released six main copyright licenses known as CreativeCommons licenses. These licenses allow creators to easily communicate which rightsthey reserve, and which rights they waive for the benefit of other creators.

Creative Commons is widely developed on the web, many information and re-sources can be found on their website http://creativecommons.org. As of 2008,more than 100 million of online creative works1 are licensed under CC licenses. Manycompanies trust CC and use the licenses in their production or provide the licensesto their users2.

1.2 Why?

Today in most countries, every time someone create something, the creative workautomatically falls under a copyright license which reserves all rights to the creator.That can be considered as normal, hopefully, everything we make belongs to us. Buta problem arises when the creator wants to explicitly allow the sharing of his work.Creative Commons simply gives tools to help this. What makes this powerful isthat these tools are legally efficient and totally reliable for personal and professionaluses.

1.3 An example

Here is an example to easily understand this:

Figure 1.1: The Attribution Non-commercial No Derivatives (by-nc-nd) license logo

1see the page http://wiki.creativecommons.org/Metrics to read the study2see the Case Studies project (http://wiki.creativecommons.org/Casestudies) for more infor-

mation

4

Page 5: Creative commons internship report

If a creator choose the Attribution Non-commercial No Derivatives (by-nc-nd)license, he allows the sharing of his work provided that people attribute him, do notmake any commercial use of the work and do not make any derivative of it.

Figure 1.2: The Attribution Non-commercial No Derivatives (by-nc-nd) “human-readable” page

We can see on figure 1.2 that the conditions are easily understandable by ev-eryone. Of course, under this human-readable page there is a legal code which isported in every jurisdiction. Moreover, under these human and lawyer readablepages, there is also a machine readable code to allow people add license informationin their online works. These different layers can be seen on figure 1.3.

Figure 1.3: The “human readable” page, the legal code and the machine code

5

Page 6: Creative commons internship report

1.4 Other Projects

Apart from the main licenses, Creative Commons focuses on more specific projects:

Creative Commons International

Creative Commons International works to “port” the core licenses to different copy-right legislations around the world. The porting process involves both linguisticallytranslating the licenses and legally adapting them to particular jurisdictions.

ccLearn

ccLearn is a division of Creative Commons which is dedicated to realizing the fullpotential of the Internet to support open learning and open educational resources.The mission is to minimize barriers to sharing and reuse of educational materials.

Science Commons

Science Commons has three interlocking initiatives designed to accelerate the re-search cycle:

• Making scientific research “re-useful”

• Enabling “one-click” access to research materials (for researchers to easilyreplicate, verify and extend research)

• Integrating fragmented information sources (to help researchers find, analyzeand use data from disparate sources by marking and integrating the informa-tion with a common, computer-readable language)

Science Commons is located at the Massachusetts Institute of Technology.

1.5 The internal structure

Creative Commons relies on the work of geographically distributed staff and vol-unteers. The main offices are in San Francisco, Boston and Berlin. On the whole,around 40 people are Creative Commons employees, of course the worldwide com-munity behind the project is here to increase the radiance of Creative Commons.Basically, the organization is divided into its main projects, and on the top of thatthe Board of Directors. (refer to the organization chart page 14 for more details)

1.6 My team

During this internship, I was in the technical team. We were two technology interns– Frank Tobia, from New Jersey (United States) and myself. Our direct superiorwas Nathan Yergler, Chief Technology Officer. In the office Nathan Kinkade andAsheesh Laroia were also part of the technical team as web and software engineers.The “Tech team” was directly following Michael Linksvayer, the Creative CommonsVice President.

I was very autonomous in my work, but I had to give results in time to mysuperior. I had bi-weekly meetings with the other members of the team. These“stand-up meetings” were the right time to keep track on the completion of thedifferent tasks, to briefly discuss problems and to update or redefine goals.

6

Page 7: Creative commons internship report

Chapter 2

My work

Along this internship, I had to work on three different things:

• My first work was to enhance the internal task and project tracking systemused at Creative Commons.

• Then as this project went well on time, I had the opportunity to work on theperfection of the Creative Commons online license deeds.

• Finally, I developed a rather simple application to add license metadata intofiles.

These three tasks were equivalent in amount of work and time.

2.1 Semantic MediaWiki

2.1.1 Background

Semantic MediaWiki1 is an extension for MediaWiki2, the software that powersmany famous wikis on the web, including Wikipedia3. Semantic MediaWiki addssemantic information on to the traditional wiki engine. Creative commons uses aSemantic MediaWiki deployment as their task and project tracking system. NathanYergler and Asheesh Laroia, both part of the tech team at Creative Commons,previously worked on a set of pages and templates to provide an simple but efficienttask and project tracking system to the organization. Unfortunately this systemdoes not provide any email functionalities. My first job was thus to implementemail notifications and reminders for tasks.

2.1.2 Specifications

E-mail notification: The system should send an e-mail to the assignee(s) and thefollower(s) of a task when this task is created or updated. This e-mail should containa link to the task page, in case of a new task it should contain the text of the taskand in case of an update, it should contain a summary of the differences (called diff).E-mail reminders: The system should send automatic e-mails when a task dead-lineapproaches. This number of days should be defined in the task properties.

1http://semantic-mediawiki.org2http://www.mediawiki.org3http://www.wikipedia.org

7

Page 8: Creative commons internship report

2.1.3 My Work

A MediaWiki installation can be easily customized by adding many extensions.Because this functionality was an addition to the core system, I logically decided tocreate an extension.

I decomposed my work into the following points:

1. deployment of a Semantic MediaWiki installation on my local machine andcopy of the Teamspace database

2. writing of the notification functionality:

• query the needed semantic information after the save of a page

• send the information to the right user

• properly send mails using the MediaWiki internal mail sender

3. writing of the reminder functionality: make sure that it can be launched on adaily frequence

4. installation in production

I tested my work continually: Before starting one of these points, I had to makesure that the previous point was successfully working.

I also had to make sure that the extension would be compatible with the nextversions of the engines I used.

2.1.4 Personal benefits

What have I learned?

• Cutting edge php: The MediaWiki software is developed in object-orientedphp. Before this work, I manipulated a lot of php code but not on such alarge scale. The class hierarchy is here well organized and the code uses a lotof abstraction.

What are my new skills?

• installing and running a webserver

• administrating a webserver remotely

• Full MediaWiki deployment

• Semantic MediaWiki usage

2.2 XHTML and RDFa validation

2.2.1 Background

The World Wide Web Consortium (W3C)4 is the main international standards or-ganization for the World Wide Web. It is arranged as a consortium where memberorganizations maintain full-time staff for the purpose of working together in the

4http://www.w3.org

8

Page 9: Creative commons internship report

development of standards for the World Wide Web. The W3C recommends the useof strict XHTML to write web pages.

There are 6 basic Creative Commons licenses, each license is ported in more than45 jurisdictions and translated in much more languages. We quickly understand thatthe pages of the deeds are automatically generated. Indeed, the Creative Commonswebsite uses Zope5 to generate its pages. Zope is a server side python applicationthat generates html. When creating pages using Zope, the developer writes pagesthat look like basic html but that contain tags and macros, those call python classesto add dynamic data to the former html code. Unfortunately the online licensesdeeds were not XHTML valid.

2.2.2 Specifications

I had to make sure the deeds, the license chooser and results pass this validation.The license deeds are the most important to validate: millions of webpages

around the globe link to those deeds. There are crucial for the well understandingof the different conditions of each license. In some way, they represents the staticcore of Creative Commons. They should always be online and should be viewableby the largest number of people. Validating them represents a guarantee that theyshould display correctly on every web browsers.

2.2.3 My Work

Because of the simplicity of their structure, I started working on the license deeds(see for example figure 1.3, page 4). The XHTML markup is very strict comparingto traditional HTML. In order to correct the existing code I used the W3C XHTMLvalidation service6 which points out the errors in a non-valid XHTML code. In apage, many errors were exactly of the same kind. I simply had to read the officialXHTML specifications7 to know how to modify the original code by a valid one.

For example, because of the many translations, the pages can look very differentdue to text orientation. I cleaned the way the right-to-left or left-to-right informationwas written in the page. The XHTML specification is very strict on this.

2.2.4 Personal benefits

What have I learned?

• strict XHTML specifications

• RDFa specifications

What are my new skills?

• Write clean XHTML

• Add semantic information to webpages

5http://www.zope.org6http://validator.w3.org7http://www.w3.org/TR/xhtml1

9

Page 10: Creative commons internship report

2.3 License Tagger

2.3.1 Background: liblicense

Creative Commons has developed a tool to help people add license information intofiles. This tool, called liblicense8, is a library that can be used along with a program.It handles the way license metadata are added into files so that developers don’thave to worry about this. By loading this library, they only have to call functionsthat properly handle it.

This library has recently been released and included in famous linux distribu-tions. It is now time for developers to start using it.

2.3.2 Specifications

My work was to create a very small application which would only have one singlefunctionality: add license metadata into files. This could be taken as a demo for aliblicense use.

The specifications were very simple: make a very simple cross platform applica-tion to add license metadata into files. This application should be very user-friendly.Loading a file should be done by either dropping a file on the application icon oron the application itself. Then, the user should have in one single look the licenseinformation of the file. He then must be able to change it easily by clicking a button.This button opens a new windows displaying a license chooser. This license choosermust allow the user to easily choose among the Creative Commons licenses but alsopublic domain, full copyright or a user defined license.

Figure 2.1: The license tagger principle

liblicense is a C library but also provides Python bindings, which means it canbe called from a Python application.

2.3.3 My work

I could have built this application using C++ and the Gtk graphical toolkit9 thatI mastered. But I heard that the final graphical result could be better using othergraphical toolkit, we decided thus to use wxWidget10. Because liblicense is very easy

8http://wiki.creativecommons.org/Liblicense9http://www.gtk.org

10http://www.wxwidgets.org

10

Page 11: Creative commons internship report

to use in Python and because python is very well adapted for such small applica-tions, we decided to use the python programing language. Furthermore having theopportunity to do it in a way I did not know was much more interesting to me.

Figure 2.2: The license tagger UI

I slpit my work into the following steps:

1. getting familiar with wxPython by creating the graphical skeleton of the ap-plication

2. open and read a simple file using File Open.

3. open a file when the filename is passed by command line

4. read and write license information in a file

5. create the license chooser UI and logic

Of course because it was the main point of this little application, I had to con-tinually test its usability.

2.3.4 Personal benefits

What have I learned?

• Python (language)

• wxPython: a simple way to build cross platform application with UI.

What are my new skills?

• Write small python applications

• liblicense integration

11

Page 12: Creative commons internship report

Conclusion

My work at Creative Commons was an ideal way to enhance my technical knowledgein many different fields. Moreover, I must reckon I had the opportunity to workamong very diverse, open-minded and interesting people, be they the other interns orthe CC staff. Creative Commons is a rather small structure, my everyday coworkerswere from many different fields: legal work, community and business developmentand, of course, technological work. My superior proposed me to continue workingfor Creative Commons, I accepted and will work remotely during my school year ata rate of ten hours a week.

On the top of that, I must underline that I had the chance to meet variousinteresting people in the San Francisco area. When I was there I quickly understoodwhy most of main the web-based companies are from the area. There is a real cultureof the Internet, people are considering it as a very serious business. I attendedmany web-related events: from start-ups organizing parties to major event such asLinuxWorld or a conference at Google. What is worth pointing out is that all theseinternet protagonists are close to each other, this creates a real emulation betweenthem. Ideas are shared and enhanced at a very fast pace, these people are simplybuilding our tomorrow.

I realized that I really wanted to be part of this tomorrow. This confirmed theprofessional project I had in mind: I like to be creative and innovative, I’m nowconvinced that this field is the one that offers many opportunities for this. I’m surethat the digital revolution is still at its beginning and that the sector will always bewidely opened for people with ideas.

12

Page 13: Creative commons internship report

List of Figures

1 The Creative Commons main logo . . . . . . . . . . . . . . . . . . . . 3

1.1 The Attribution Non-commercial No Derivatives (by-nc-nd) licenselogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 The Attribution Non-commercial No Derivatives (by-nc-nd) “human-readable” page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 The “human readable” page, the legal code and the machine code . . 5

2.1 The license tagger principle . . . . . . . . . . . . . . . . . . . . . . . 102.2 The license tagger UI . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

13

Page 14: Creative commons internship report

Appendix

0.1 Creative Commons Organization Chart

14