Stage d’application promotion 2009                                       SECOND YEAR INTERNSHIP                           ...
ContentsIntroduction                                                                                                      ...
Introduction                             ´As a second year student at Ecole Centrale de Lyon, I had to do an internship du...
Chapter 1Background1.1      What is Creative Commons?Creative Commons (also known as CC) is a non-profit organization mainl...
If a creator choose the Attribution Non-commercial No Derivatives (by-nc-nd)license, he allows the sharing of his work pro...
1.4     Other ProjectsApart from the main licenses, Creative Commons focuses on more specific projects:Creative Commons Int...
Chapter 2My workAlong this internship, I had to work on three different things:   • My first work was to enhance the interna...
2.1.3       My WorkA MediaWiki installation can be easily customized by adding many extensions.Because this functionality ...
development of standards for the World Wide Web. The W3C recommends the useof strict XHTML to write web pages.    There ar...
2.3      License Tagger2.3.1     Background: liblicenseCreative Commons has developed a tool to help people add license in...
to use in Python and because python is very well adapted for such small applica-tions, we decided to use the python progra...
ConclusionMy work at Creative Commons was an ideal way to enhance my technical knowledgein many different fields. Moreover, ...
List of Figures 1     The Creative Commons main logo . . . . . . . . . . . . . . . . . . . .         3 1.1   The Attributi...
Appendix0.1   Creative Commons Organization Chart                       14
Upcoming SlideShare
Loading in …5
×

Creative commons internship report

2,051 views

Published on

Report of my summer internship at Creative Commons

Published in: Career
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,051
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Creative commons internship report

  1. 1. 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 COMMONS171 2nd Street third floorSan Francisco, CA 94105UNITED STATES ECOLE CENTRALE DE LYONService des Relations Ext´rieures e36, Avenue Guy de Collongue69134 ECULLY CEDEXFRANCE
  2. 2. ContentsIntroduction 31 Background 4 1.1 What is Creative Commons? . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Why? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 An example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Other Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.5 The internal structure . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6 My team . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 My work 7 2.1 Semantic MediaWiki . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 My Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 XHTML and RDFa validation . . . . . . . . . . . . . . . . . . . . . . 8 2.2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.3 My Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 License Tagger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.1 Background: liblicense . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2 Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.3 My work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.4 Personal benefits . . . . . . . . . . . . . . . . . . . . . . . . . 11Conclusion 12List of figures 13Appendix 14 0.1 Creative Commons Organization Chart . . . . . . . . . . . . . . . . . 14 2
  3. 3. 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
  4. 4. Chapter 1Background1.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 exampleHere is an example to easily understand this:Figure 1.1: The Attribution Non-commercial No Derivatives (by-nc-nd) license logo 1 see the page http://wiki.creativecommons.org/Metrics to read the study 2 see the Case Studies project (http://wiki.creativecommons.org/Casestudies) for more infor-mation 4
  5. 5. 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
  6. 6. 1.4 Other ProjectsApart from the main licenses, Creative Commons focuses on more specific projects:Creative Commons InternationalCreative 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.ccLearnccLearn 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 CommonsScience 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 easily replicate, verify and extend research) • Integrating fragmented information sources (to help researchers find, analyze and 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 structureCreative 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 teamDuring 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
  7. 7. Chapter 2My workAlong this internship, I had to work on three different things: • My first work was to enhance the internal task and project tracking system used at Creative Commons. • Then as this project went well on time, I had the opportunity to work on the perfection of the Creative Commons online license deeds. • Finally, I developed a rather simple application to add license metadata into files.These three tasks were equivalent in amount of work and time.2.1 Semantic MediaWiki2.1.1 BackgroundSemantic 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 SpecificationsE-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. 1 http://semantic-mediawiki.org 2 http://www.mediawiki.org 3 http://www.wikipedia.org 7
  8. 8. 2.1.3 My WorkA 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 and copy 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 a daily 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 benefitsWhat have I learned? • Cutting edge php: The MediaWiki software is developed in object-oriented php. Before this work, I manipulated a lot of php code but not on such a large scale. The class hierarchy is here well organized and the code uses a lot of abstraction.What are my new skills? • installing and running a webserver • administrating a webserver remotely • Full MediaWiki deployment • Semantic MediaWiki usage2.2 XHTML and RDFa validation2.2.1 BackgroundThe 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 4 http://www.w3.org 8
  9. 9. 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 Zope 5 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 SpecificationsI 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 webpagesaround 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 WorkBecause 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 benefitsWhat have I learned? • strict XHTML specifications • RDFa specificationsWhat are my new skills? • Write clean XHTML • Add semantic information to webpages 5 http://www.zope.org 6 http://validator.w3.org 7 http://www.w3.org/TR/xhtml1 9
  10. 10. 2.3 License Tagger2.3.1 Background: liblicenseCreative 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 SpecificationsMy 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 workI 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 wxWidget 10 . Because liblicense is very easy 8 http://wiki.creativecommons.org/Liblicense 9 http://www.gtk.org 10 http://www.wxwidgets.org 10
  11. 11. 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 benefitsWhat 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
  12. 12. ConclusionMy 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
  13. 13. List of Figures 1 The Creative Commons main logo . . . . . . . . . . . . . . . . . . . . 3 1.1 The Attribution Non-commercial No Derivatives (by-nc-nd) license logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 The license tagger UI . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 13
  14. 14. Appendix0.1 Creative Commons Organization Chart 14

×