blob: f3c8feb4f0aee4556e6c7fe11a0b8a18e35124fe [file] [log] [blame]
#!/usr/bin/env ruby
# ComDev Talks: Parse ComDev listings of Apache-related talks
$LOAD_PATH.unshift '/srv/whimsy/lib'
require 'whimsy/asf'
require 'yaml'
require 'json'
COMDEVTALKS = ASF::SVN.svnurl!('comdevtalks') # *.yaml
COMDEVDIR = ASF::SVN['comdevtalks'] # *.yaml
SKIPFILE = 'README.yaml'
# Parse all talks and submitters
def parse_talks(dir = "#{COMDEVDIR}")
talks = {}
submitters = {}
Dir[File.join("#{dir}", "*.yaml")].each do |fname|
begin
if fname =~ /_/
talks["#{File.basename(fname, ".*")}"] = YAML.load(File.read(fname.untaint))
elsif fname !~ /SKIPFILE/
submitters["#{File.basename(fname, ".*")}"] = YAML.load(File.read(fname.untaint))
end
rescue Exception => e
puts "Bogosity! analyzing #{fname} raised #{e.message[0..255]}"
puts "\t#{e.backtrace.join("\n\t")}"
end
end
return talks, submitters
end
# Abstract how cgi gets data
def get_talks_submitters()
# return parse_talks
# HACK static data until we have generated public/ or other format
talks = {"Apache_Way_2017"=>{"title"=>"Apache Way: Effective Open Source Project Management", "teaser"=>"Learn how to manage long-lived diverse open source project communities by following the behaviors of the Apache Way.", "submitter"=>"curcuru", "speakers"=>["curcuru"], "abstract"=>"The \"Apache Way\" is the process by which Apache Software Foundation projects are managed. It has evolved 18 years and has produced over 170 highly successful open source Apache projects. But what is it and how does it work?\n\nLearn the core behaviors that make up the Apache Way, and how they are used in successful Apache projects from core technologies, to big data, to user facing projects.\n\nThe behaviors in the Apache Way are required for all Apache projects, but can be simply used by any open source projects. Distributed decision making, open communication, do-ocracy, and diverse communities are the cornerstones.\n\nBenefit from the experience of over 5,000 Apache committers and 170 successful projects by applying these behaviors and techniques in your own projects! \n", "audience"=>"Community managers, developers, project managers involved with FOSS projects.", "slides"=>"http://shaneslides.com/apachecon/TheApacheWay-Intro-ApacheConNA2017.html", "video"=>"https://www.youtube.com/watch?v=hpAv54KIgK8", "topics"=>["apacheway", "community"], "present_at"=>["http://apachecon.com/2017"], "present_date"=>"2017-05-16"}, "Committed_To_The_Apache_Way"=>{"title"=>"Committed To The Apache Way", "teaser"=>"Learn how being involved in an Apache project is not just about code.", "submitter"=>"sharan", "speakers"=>["sharan"], "abstract"=>"'To be committed' is a strange phrase. In the past it was used to describe people who were sent to mental institutions or 'facilities'. Fast forward to today and words like committed and commitment are used throughout the Open Source world. Are we all a little crazy? - Perhaps!\n\nIn this presentation Sharan shares her thoughts and experiences about being a Committer, life at the ASF (facility) and how not being able to code is still OK.\n", "audience"=>"Community managers, developers, project managers involved with FOSS projects.", "slides"=>"http://events.linuxfoundation.org/sites/events/files/slides/Commited%20to%20Apache.pdf", "video"=>"https://www.youtube.com/watch?v=vT-kxmoLs5k&index=25&list=PLbzoR-pLrL6pLDCyPxByWQwYTL-JrF5Rp", "topics"=>["community", "contributors"], "present_at"=>["http://apachecon.com/2017"], "present_date"=>"2017-05-16"}, "From_Dev_To_User"=>{"title"=>"From dev@ to user@ to the Apache Way", "teaser"=>"The story of how an existing project community improved by coming to Apache.", "submitter"=>"sblackmon", "speakers"=>["sblackmon"], "abstract"=>"This talk will cover the journey of Apache Streams (incubating) beyond a solution solely by and for java developers, toward a solution that can provide value for anyone, anywhere along the experience spectrum, regardless of technical preferences. We'll share feedback that served as concentrate focus on mission and usability. \n\nWe'll walk through some of the improvements made to project code and tooling (maven), documentation (website, examples), and usability (command line interface, maven plugins, zeppelin support, network APIs) to move the project from dev@ to user@, and the opportunities we see to increase usability and relevance still further.\n", "audience"=>"Community managers, developers, project managers involved with FOSS projects.", "slides"=>"http://events.linuxfoundation.org/sites/events/files/slides/ApacheConNA2017-Blackmon.pdf", "video"=>"https://www.youtube.com/watch?v=E9A54x6af8o&index=27&list=PLbzoR-pLrL6pLDCyPxByWQwYTL-JrF5Rp", "topics"=>["incubator", "apacheway"], "present_at"=>["http://apachecon.com/2017"], "present_date"=>"2017-05-16"}, "Tale_Of_Two_Developers"=>{"title"=>"A Tale of Two Developers: Finding Harmony Between Commercial Software Development and the Apache Way", "teaser"=>"Learn from the real-life lunchtime dialog between an experienced Apache committer and a new coder.", "submitter"=>"wang", "speakers"=>["wang", "Alex Leblang"], "abstract"=>"Apache community members can reference tenets from the Apache Way such as \u201Ccommunity over code\u201D and \u201Copenness\u201D as if it were second nature. While they may sound simple, these concepts can be foreign to developers coming to open source for the first time. Success as an Apache contributor stresses skills not emphasized in other types of software development, including reconciling the requirements of the upstream development process with the realities of running a commercial software business.\n\nWith the assistance of choreographed Socratic dialogue, our two protagonists, an experienced Apache committer and an enthusiastic young gun contributor, explore the tensions of working on an Apache project as employees of a for-profit company. The audience will learn practical advice and problem solving techniques for working effectively as part of an Apache community. By the end, our greenhorn comes to understand that the yin and yang of commercial software development and the Apache Way can exist in harmony.\n\nOur talk contextualizes the Apache Way for developers who are paid to work on open-source full-time, drawn from our real-world experience working at Cloudera. This is presented through a series of short vignettes accompanied by intervening discussion and review slides. Tenets of the Apache Way like meritocracy, community, and hats are introduced and referred to throughout as the backbone to building strong open-source communities. We examine the tension between corporate pressures and open-source, emphasizing the underlying value that companies gain from open-source software.\n\nOur two main characters are:\n* Alex, an energetic young developer who is new to open source but not to development. Excited to get stuff done on this new project.\n* Andrew, a long-time Apache committer who takes Alex under his wing and teaches him the importance of open-source.\n\nThe outline for our skits are:\n* Act 1: Introduction to Apache and the Apache Way, FAQs from Alex as someone getting started as a new contributor\n* Act 2: How to build consensus when there's conflict (e.g. someone -1's your patch), public communication, demonstrating merit and the path to committership\n* Act 3: No jerks allowed. Andrew does a heel turn and is ruling the project with an iron fist, Alex intervenes in a come-to-jesus/student-becomes-the-teacher moment. Re-emphasize the importance of community, and how dictators are bad for projects.\n", "audience"=>"Community managers, developers, project managers involved with FOSS projects.", "slides"=>nil, "video"=>"https://www.youtube.com/watch?v=ea_9qkaTeVw&index=26&list=PLbzoR-pLrL6pLDCyPxByWQwYTL-JrF5Rp", "topics"=>["apacheway", "developers"], "present_at"=>["http://apachecon.com/2017"], "present_date"=>"2017-05-16"}}
submitters = {"curcuru"=>{"name"=>"Shane Curcuru", "website"=>"http://communityovercode.com/", "twitter"=>"shanecurcuru", "facebook"=>nil, "bio"=>"Shane has been involved at the Apache Software Foundation (ASF) since 1999, and serves as Director and VP of Brand Management, setting trademark policies and helping all 200+ Apache projects implement and defend their brands.\n\nOtherwise, Shane is: a father and husband, a friend, a geek, a Member of the ASF, a baker, and a punny guy. Oh, and we have cats. Shane blogs at http://communityovercode.com/ and regularly speaks on FOSS governance and branding topics.\n"}, "README"=>{"title"=>"Talk Title: Strings with colons must be quoted", "teaser"=>"Teaser is one sentence for use on session grids or tweets or the like (where supported).", "submitter"=>"curcuru", "speakers"=>["curcuru", "Court Jester"], "abstract"=>"Abstracts are the full description of a talk, session, or panel that has already been presented.\n\nAbstracts may have line breaks, and some systems may allow **formatting** or the like.\n\nUsing the YAML pipe \"|\" character for a literal multiline scalar means linebreaks are preserved in the abstract. \n", "audience"=>"Brief description of the expected audience for this talk.", "slides"=>"URL.to/posted-slides", "video"=>"URL.to/posted-video?if-any", "present_at"=>["URL.to/last-conference-presented-at"], "present_date"=>"2017-05-16"}, "sblackmon"=>{"name"=>"Steve Blackmon", "website"=>nil, "twitter"=>"steveblackmon", "facebook"=>nil, "bio"=>"VP Technology at People Pattern, previously Director of Data Science at W2O Group, co-founder of Ravel, stints at Boeing, Lockheed Martin, and Accenture. Committer and PMC for Apache Streams (incubating). Experienced user of Spark, Storm, Hadoop, Pig, Hive, Nutch, Cassandra, Tinkerpop, and more.\n"}, "sharan"=>{"name"=>"Sharan Foga", "website"=>nil, "twitter"=>nil, "facebook"=>nil, "bio"=>"Sharan Foga have been involved with the ASF since 2008 and has presented at previous Apachecons (Vancouver 2016, Budapest 2015 & 2014). She enjoys working on community management and related areas and is a Committer and PMC Member for Apache OFBiz and Community Development.\n"}, "wang"=>{"name"=>"Andrew Wang", "website"=>"http://umbrant.com/", "twitter"=>nil, "facebook"=>nil, "bio"=>"Andrew Wang is a software engineer at Cloudera on the HDFS team, where he has worked on projects including in-memory caching, transparent encryption, and erasure coding. Previously, he was a PhD student in the AMP Lab at UC Berkeley, where he worked on problems related to distributed systems and warehouse-scale computing. He is a committer and PMC member on the Apache Hadoop project, a committer on Apache Kudu (incubating), and holds masters and bachelors degrees in computer science from UC Berkeley and UVa respectively. Andrew has spoken at conferences including Hadoop Summit EU, Strata NYC, Strata London, HBaseCon, ACM SoCC, and USENIX HotCloud.\n"}}
return talks, submitters
end
# ## ### #### ##### ######
# Main method for command line use
if __FILE__ == $PROGRAM_NAME
dir = COMDEVDIR
outfile = File.join("#{dir}", "comdevtalks.json")
puts "BEGIN: Parsing YAMLs in #{dir}"
talks, submitters = parse_talks dir
results = {}
results['talks'] = talks
results['submitters'] = submitters
File.open(outfile, "w") do |f|
f.puts JSON.pretty_generate(results)
end
puts talks
puts "END: Thanks for running, see #{outfile}"
puts submitters
end