1 of 52

World of Code hackathon 2023

R

2 of 52

Before we get started…

https://bit.ly/woc2023github

  • Name badge / Discord name
  • Discord role: #select_role
  • Wifi access (eduroam / UT-open)
  • Zoom access
  • WoC access
  • WoC Github (https://github.com/woc-hack)

R

3 of 52

Localities and links

Main room: MK 435

Breakout rooms: MK 434, MK 354, MK 235 (for working time)

R

4 of 52

R

5 of 52

Team presentations will be recorded

R

6 of 52

#knoxville2023-hackathon channel in Discord

Github Issue tracker

or ask one of the WoC experts online or in the room

R

7 of 52

05:00pm: Opening Ceremony, Schedule, Logistics, Getting to know each other

05:45pm: Idea pitches

06:15pm: Idea voting

06:45pm: Team formation

08:30pm: Dinner @ Carrabba's Italian Grill

(leave at 08:00pm)

Schedule Friday (November 17)

(all times are in EST)

R

8 of 52

Schedule Saturday (November 18)

(all times are in EST)

09:00am: Breakfast

09:30am: Roll-call

09:45am: Team formation finalization

10:30am: Team presentations

11:00am: Working time

12:30pm: Lunch

01:30pm: Checkpoint 1

02:00pm: Working time

04:00pm: Break

04:30pm: Working time

06:30pm: Checkpoint 2

3:30pm EST

Dinner on your own

R

9 of 52

09:00am: Breakfast

09:30am: Roll-call

09:45am: Working time

11:30am: Break

12:00pm: Final presentations and closing

01:00pm: Lunch

Schedule Sunday (November 19)

(all times are in EST)

R

10 of 52

Project ideas

  • 30 second pitch
  • I am…
  • I would like to…
  • Because…
  • And for that I need…

R

11 of 52

  • Examples of submitted ideas:
    • Using World of Code to identify scientific software repositories to assemble a corpus with the help of AI/ML LLM technology
    • Analyze the "halflife" of code for languages over time
    • Correlate README features to the number of GitHub stars

(https://github.com/woc-hack/hackathon-knoxville-2023/blob/main/ideas.md)

  • Examples of prior projects:
    • BotBusters - Detecting and Characterizing Bots that Commit Code
    • Inflection points - Studying changepoints in open source software evolution
    • TrackHack - Tracing hackathon code
    • KJD - Studying the vulnerability duration across projects

(https://github.com/woc-hack/hackathon-knoxville-2023/blob/main/prior_projects.md)

R

12 of 52

Idea voting

R

13 of 52

Team formation

  1. Most voted ideas get to form a team
  2. Idea proposer find a space and join their breakout room in Zoom
  3. Remaining participants choose which project they want to join
  4. Teams need to have between 3 and 5 members from different institutions and at least one on-site participant
  5. Pay attention to potential time zone issues!
  6. Having an experienced WoC user in your team is encouraged

R

14 of 52

Team presentations

  • Tomorrow at 10:30am in MK 435 and main Zoom
  • Github repo in https://github.com/woc-hack
  • Short presentation (3 minutes per team):
    • Team name and members
    • Concrete project idea
    • How are you planning to approach your project?
    • What can you achieve during the hackathon?
    • What if anything do you think you might need help with?
  • Decide for presenter!

R

15 of 52

Deliverables

  • Presentation at the end of the hackathon
  • Github repo in https://github.com/woc-hack
  • Project report:
    1. Introduction
    2. Methodology
    3. Preliminary Findings
    4. Challenges
    5. Future work
  • Decide for presenter!

(template: https://github.com/woc-hack/hackathon-knoxville-2023/blob/main/project_template.md)

R

16 of 52

It is ok to help each other!

R

17 of 52

Enjoy the ride!

Share your experience: #worldofcode2023

R

18 of 52

Research on hybrid hackathons

  • Organizer observation and interviews
  • Participant surveys and interviews

R

19 of 52

Getting to know each other…

For experienced WoC users:

I can help you with…

Name, Affiliation

Why are you participating?

R

20 of 52

Project pitches

  • 30 seconds
  • I am…
  • I would like to…
  • Because…
  • And for that I need…

R

21 of 52

Voting and break

R

22 of 52

Team formation

  1. Most voted ideas get to form a team
  2. Idea proposer find a space and join their breakout room in Zoom
  3. Remaining participants choose which project they want to join
  4. Teams need to have between 3 and 5 members from different institutions and at least one on-site participant
  5. Pay attention to potential time zone issues!
  6. Having an experienced WoC user in your team is encouraged

R

23 of 52

Housekeeping

  • Breakfast at 09:00am (MK 435)
  • Roll-call at 09:30am (MK 435 and main Zoom)
  • Team formation finalization 09:45am
    • Make sure that you are in a team!
    • Exchange contact information before you log off today
  • To get into the building tomorrow morning:

text Mahmoud or Luis on Discord

R

24 of 52

Team presentations

  • Tomorrow at 10:30am in MK 435 and main Zoom
  • Github repo in https://github.com/woc-hack
  • Short presentation (3 minutes per team):
    • Team name and members
    • Concrete project idea
    • How are you planning to approach your project?
    • What can you achieve during the hackathon?
    • What if anything do you think you might need help with?
  • Decide for presenter!

R

25 of 52

Dinner @ Carrabba's Italian Grill at 08:30pm

Departure: 08:00pm from MK 435

R

26 of 52

Day 2

R

27 of 52

Schedule Saturday (November 18)

(all times are in EST)

09:00am: Breakfast

09:30am: Roll-call

09:45am: Team formation finalization

10:30am: Team presentations

11:00am: Working time

12:30pm: Lunch

01:30pm: Checkpoint 1

02:00pm: Working time

04:00pm: Break

04:30pm: Working time

06:30pm: Checkpoint 2

3:30pm EST

Dinner on your own

R

28 of 52

Team presentations

  • At 10:30am in MK 435 and main Zoom
  • Github repo in https://github.com/woc-hack with team name and members
  • Short presentation (3 minutes per team):
    • Team name and members
    • Concrete project idea
    • How are you planning to approach your project?
    • What can you achieve during the hackathon?
    • What if anything do you think you might need help with?
  • Decide for presenter!

R

29 of 52

Physical breakout rooms:

MK 434, MK 354, MK 235

R

30 of 52

Team presentations

(10:30am in MK 435 and main Zoom)

R

31 of 52

Schedule Saturday (November 18)

(all times are in EST)

09:00am: Breakfast

09:30am: Roll-call

09:45am: Team formation finalization

10:30am: Team presentations

11:00am: Working time

12:30pm: Lunch

01:30pm: Working time

03:30pm: Break

04:00pm: Checkpoint

04:30pm: Working time

3:30pm EST

Dinner on your own

R

32 of 52

Checkpoint

  • At 04:00pm in MK 435 and main Zoom
  • Short presentation (3 minutes per team):
    • What have you achieved so far?
    • What were your biggest issues?
    • What are your plans until the

final presentation?

    • What do you need help with?
    • Slides are ok but not required.
    • Decide for presenter!

R

33 of 52

12:30pm

Lunch in MK 435

R

34 of 52

03:30pm

Break in MK 435

R

35 of 52

Checkpoint

(04:00pm in MK 435 and main Zoom)

R

36 of 52

Checkpoint

  • Short presentation (3 minutes per team):
    • What have you achieved so far?
    • What were your biggest issues?
    • What are your plans until the

final presentation?

    • What do you need help with?
    • Slides are ok but not required.
    • Decide for presenter!

R

37 of 52

Final presentations

  • Tomorrow at 12:00pm in MK 435 and main Zoom
  • Upload your code to your Github repo
  • Document your project

(Template: https://github.com/woc-hack/hackathon-knoxville-2023/blob/main/project_template.md)

  • Presentation (max. 5 minutes per team):
    • Project description
    • Methodology
    • Findings
    • Challenges
    • Future plans

R

38 of 52

Housekeeping

  • Breakfast at 09:00am (MK 435)
  • Roll-call at 09:30am (MK 435 and main Zoom)
  • To get into the building tomorrow morning:

text Mahmoud or Luis on Discord

  • Dinner on your own
  • Flexible end of day

R

39 of 52

Day 3

R

40 of 52

09:00am: Breakfast

09:30am: Roll-call

09:45am: Working time

11:30am: Break

12:00pm: Final presentations and closing

01:00pm: Lunch

Schedule Sunday (November 19)

(all times are in EST)

R

41 of 52

Final presentations

  • At 12:00pm in MK 435 and main Zoom
  • Upload your code to your Github repo
  • Document your project

(Template: https://github.com/woc-hack/hackathon-knoxville-2023/blob/main/project_template.md)

  • Presentation (max. 5 minutes per team):
    • Project description
    • Methodology
    • Findings
    • Challenges
    • Future plans

R

42 of 52

11:30am

Break in MK 435

R

43 of 52

Final presentations

(12:00pm in MK 435 and main Zoom)

R

44 of 52

Team presentations will be recorded

R

45 of 52

Project To License Matching

World of Code 2023

46 of 52

Sampling The Data

  • A mapping from project license blobs to known official license blobs had already been gathered.
  • We validated the mappings by reviewing the project licenses and the matched official license by hand.
    • First we sampled 20 project licenses at thresholds of 0%-20%, 20%-40%, 40%-60%, 60%-80%, and 80%-100% matches of hashed windows against the official license blob.
    • We found that a threshold of 80% worked well, so we reviewed 20 more samples each of smaller buckets: 80%-85%, 85%-90%, 90%-95% , and 95%-100%.
      • A manual review using a threshold of >=95% matches exclusively had only name and year changes against the license template.
      • Using a threshold of >=80% matches, we can reasonably assume that the project is using the official license, but there may be additional formatting changes in the document.
      • The 80% threshold still includes 82% of the matched licenses; we still can include most of the data with this method.

47 of 52

Sampling Analysis Results

Projects with

>100 signatures

80%-85% Match

85%-90% Match

90%-95% Match

95%-100% Match

9/20 had additional licenses but no modifications, 10 were unchanged, 1 had added clauses.

2/20 had additional licenses but no modifications, 10 were unchanged, 1 had added clauses.

2/20 had additional licenses but no modifications, 13 were unchanged, 5 had added standard exceptions (SPDX)

All 20 were unchanged.

Projects with

<=100 signatures

80%-85% Match

85%-90% Match

90%-95% Match

95%-100% Match

3/20 had additional licenses but no modifications, 17/20 were unchanged.

3/20 had additional licenses but no modifications, 17/20 were unchanged.

All 20 were unchanged.

All 20 were unchanged.

48 of 52

What We Learned From Sampling Project Licenses

  • License blobs may include multiple licenses, so matching against one official license may not be the best strategy.
  • Oftentimes licenses contain a disclaimer by the author that the software may be subject to other licenses (which does not change anything for our purposes).
  • Some licenses point to other files which contain third party licenses (which also does not change anything for our purposes).
  • Some licenses, like the Common Attribution license, are more likely to be modified with additional clauses than others.

49 of 52

Finding Conflicts In Copied Code

  • Using this data, we are able to find potential license conflicts by checking the licenses of downstream and upstream copied code.
  • We created a Jupyter Notebook to perform this search for a sample of 10,000 projects.
    • We created a mapping from downstream projects and their licenses to a list of upstream projects labeled with their licenses as well.
    • Using this mapping we found 9 instances of the 10,000 where an upstream project is determined to have a copyleft license (like GPL), but is re-licensed an incompatible non-copyleft license.
    • This was just performed in the first 10,000 projects sorted in alphabetical order; there are likely to be many more instances of these conflicts in a larger sample.

50 of 52

Conclusion

What did we find?

  • Matching licenses with a threshold of >=80% matched windows is an effective way to predict the license for a project.
  • Using this method, we can map the licenses of projects and the projects they’ve copied code from.
  • We can find a statistically significant number of projects that potentially copy copyleft-licensed code, but are re-licensed with an incompatible non-copyleft license in the downstream project.

51 of 52

Post-event survey and interviews

  • Post-event survey: https://bit.ly/woc2023survey
  • We will contact you to schedule a 30-minute post-interview

R

52 of 52

Thank you for participating!

World of Code hackathon 2023

R