cncf / cncf.io

☁️♮🏛🚧 The CNCF.io WordPress website
https://cncf.io
MIT License
80 stars 37 forks source link

CNCF Presentations Subsite #757

Closed cjyabraham closed 10 months ago

cjyabraham commented 11 months ago

As discussed with @castrojo and @caniszczyk we want to create a new subsite to hold community-submitted presentations to provide this as a resource to the community.

Data Entry and Storage

We can store these in the https://github.com/cncf/presentations repo but re-organize the repo to have a main presentations.json file (similar to our people.json file in the people repo) that stores the full listing and all metadata for each presentation.

Metadata could include the following:

Community members could submit their presentations themselves via PR or we can have someone who submits presentations in batches, say, after a Kubecon has passed, so we have the most useful set of presentations possible.

Front-end Website

Users will go to presentations.cncf.io and see a list of presentations similar to the Online Programs here with filters for projects, language, year, free-text search.

The current listing of Online Programs can be moved to this new subsite and continue to automatically pull in recorded programs from the Community site. We could replace the recorded programs listing on the www.cncf.io site with a large CTA encouraging people over to the presentations subsite to view past programs.

The site will be implemented as a WordPress site and will borrow a lot of the code and design patterns from the main CNCF site and subsites.

Promotion

We can promote this service to speakers at Kubecon and other conferences after the conference has completed and encourage them to upload their presentation. Community members could submit their presentations themselves or we can have someone who submits presentations in batches, say, after a Kubecon has passed, so we have the most useful and complete set of presentations possible.

Phase 2 Ideas

Beyond the initial release, here are some additional feature ideas:

cjyabraham commented 11 months ago

From Figma: presentations-logo presentations-share

caniszczyk commented 11 months ago

Awesome!

On Mon, Jul 17, 2023 at 2:23 AM Chris Abraham @.***> wrote:

[image: presentations-logo] https://user-images.githubusercontent.com/463160/253876166-6b1ffcb3-40f1-4bf8-86b7-4a84617b632e.svg [image: presentations-share] https://user-images.githubusercontent.com/463160/253876172-d61c8b4b-ae55-4bc2-98cd-84c893cab24b.jpg

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1637511002, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSILCAKOX2U5GXHKYSYTXQTSAJANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

cjyabraham commented 11 months ago

To put it on the radar of this project, Audra and Katie G are asking to rebuild the Speakers Bureau we used to have. It's basically a directory of all cloud native speakers to help people find them for conferences. We could possibly merge this idea with the Presentations site since they're linked, each presentation will have a speaker.

Speaker metadata could be stored in a separate file, speakers.json, and reference in the presentations.json file keying off github username or something.

"Cloud Native certified" speakers could be tagged that way to separate them from everyone else who just submits a presentation. "Cloud Native certified" speakers are basically the equivalent of the speakers we used to accept in the Speakers Bureau. It is those who have certain credentials to make them good candidates for inviting to a conference to speak.

Other tags could be used to designate "staff" presentations or speakers from CNCF.

More details to come...

caniszczyk commented 11 months ago

not a bad idea but I'd try to keep things separate to get a v1 out of this unless you think it's going to be very easy

On Sun, Jul 30, 2023 at 1:51 PM Chris Abraham @.***> wrote:

To put it on the radar of this project, Audra and Katie G are asking to rebuild the Speakers Bureau we used to have. It's basically a directory of all cloud native speakers to help people find them for conferences. We could possibly merge this idea with the Presentations site since they're linked, each presentation will have a speaker. More details to come...

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1657240918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIKAH62IBIHZSENUHJLXS2UK5ANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

cjyabraham commented 11 months ago

I've got a basic dev site set up here: https://dev-cncf-presentations.pantheonsite.io/

Currently it's showing the online programs imported from the Community site. Next step is to get the presentations.json defined in the presentations repo. We can add a GH Action to validate any PRs on the file with a schema file to make sure it's valid.

We'll then need to incorporate the new metadata from this file into the UI, allow for searching on authors and things like that.

cjyabraham commented 11 months ago

Additional taxonomy ideas that could be filtered against:

  1. Author (this could be a category where multiple authors could be added to one presentation)
  2. Author Type (possible values: CNCF Staff, Ambassador, Project Maintainer...)
  3. Source (possible values: Online Program, Kubecon + CloudNativeCon, KCD...)

2 and 3 could possible be combined into one "Tags" taxonomy to keep the number of filters down and so that it can be extended to have additional tags later.

Possible json:

[
   {
    "name":"Leverage user traffic to automate load testing this holiday season",
    "description":"Testing tools can’t keep pace with the complexity and speed of development. By the time you’ve manually scripted a test, it’s basically out of date. And how accurate is the data used in your mocks and tests anyway? With the holiday season bearing down on retailers, dev teams must be prepared for the onslaught of online sales and unpredictable user behavior that could throw a wrench in the system. Join Jeff Kwan, Principle Engineer at Cimpress, and Speedscale co-founder Nate Lee, for a conversation with CNCF’s Taylor Dolezal to learn the biggest obstacles in automating and accelerating load testing today and how existing user traffic holds the key to scaling ecommerce software safely—with speed.",
    "presenters":[
        {
            "name":"Abdellfetah SGHIOUAR",
            "github":"https://github.com/boredabdel"
        },
        {
            "name":"Ana Margarita Medina",
            "github":"https://github.com/AnaMMedina21"
        }
    ],
    "date":"2022/03/01",
    "language":"English",
    "video":"https://www.youtube.com/watch?v=jK2DvieOFjs",
    "slides":"https://github.com/cncf/presentations/blob/master/slides/leverage-user-traffic.pdf",
    "projects":[
        "containerd",
        "Crossplane",
        "Istio",
        "k3s",
        "Knative",
        "Kubernetes",
        "OpenTelemetry",
        "OpenTracing",
        "Rook",
        "SPIFFE",
        "SPIRE"
    ],
    "tags":[
        "Project Maintainer",
        "KCD"
    ]
   }
]
jeefy commented 11 months ago

Here's a quick pass at trying to YAML-fy this (Note: Links aren't real):

- name: Leverage user traffic to automate load testing this holiday season # Required
  description: | # Optional
    Testing tools can’t keep pace with the complexity and speed of development. By the time you’ve manually scripted a test, it’s basically out of date. And how accurate is the data used in your mocks and tests anyway? With the holiday season bearing down on retailers, dev teams must be prepared for the onslaught of online sales and unpredictable user behavior that could throw a wrench in the system. Join Jeff Kwan, Principle Engineer at Cimpress, and Speedscale co-founder Nate Lee, for a conversation with CNCF’s Taylor Dolezal to learn the biggest obstacles in automating and accelerating load testing today and how existing user traffic holds the key to scaling ecommerce software safely—with speed.
  video: https://www.cncf.io/webinars/leverage-user-traffic-to-automate-load-testing-this-holiday-season/ # Optional
  slides: https://www.slideshare.net/CNCForg/leverage-user-traffic-to-automate-load-testing-this-holiday-season # Required
  date: 2020-11-19 # Required
  presenters: # Required
    - name: Abdellfetah SGHIOUAR
      github: https://github.com/boredabdel
    - name: Ana Margarita Medina
      github: https://github.com/AnaMMedina21
  event: # Optional
    name: KubeCon NA 2020
    url: https://www.cncf.io/webinars/leverage-user-traffic-to-automate-load-testing-this-holiday-season/
  language: EN # Required
  license: CC-BY-4.0 # Optional
  projects: # Required
    - containerd
    - Crossplane
    - Istio
    - k3s
    - Knative
    - Kubernetes
    - OpenTelemetry
    - Rook
    - SPIFFE
    - SPIRE
  tags: # Required
    - Project Maintainer
    - KubeCon

We would definitely want to build out a PR check that validates the projects, tags, URLs, and schema in general. That shouldn't be a huge deal though.

Thoughts?

cjyabraham commented 11 months ago

Looks like a good first pass. A few thoughts:

jeefy commented 11 months ago
  1. Mixed feelings on this, but I'm leaning towards they host it wherever they want. If this takes off more we'll have a bunch of large files in the repo and that's a pattern we should try to avoid.
  2. Yes, YouTube video links recommended (but not required)
  3. Absolutely would was meaning validate against landscape.

Further thought, would it be difficult to consume multiple YAML files instead of one ol' big one?

I'm thinking in cncf/presentations having a data folder and then github-name.yaml for each person

Otherwise it'll get uhh.... unwieldy :)

castrojo commented 11 months ago

I'm leaning towards they host it wherever they want.

Yeah in my experience speakers have their own preferred tools and services they use, getting them all to change wouldn't work, however we can also provide this repo for people who don't want to go through all that. I'd like to reorganize the presentations repo but would like to have a skeleton of this in place first before moving stuff around.

github-name.yaml for each person

Yeah this would be awesome and would make reviewing much easier!

cjyabraham commented 11 months ago

About multiple YAML files, I like that idea. I'll need to make some kind of a call to GitHub to get the list of files, then I can read them in one by one.

caniszczyk commented 11 months ago

I don’t mind everything in one repo tbh to start

On Wed, Aug 9, 2023 at 7:14 PM Chris Abraham @.***> wrote:

About multiple YAML files, I like that idea. I'll need to make some kind of a call to GitHub to get the list of files, then I can read them in one by one.

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1671835935, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSINEBGNECHQGROQXPHLXUPARBANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

jeefy commented 11 months ago

I don’t mind everything in one repo tbh to start

It will all be in one repo, but we want to break it up into multiple YAML files otherwise we'll have something even more unwieldy than landscape or config.yaml again. :)

If we do this up front it'll be a lot easier.

caniszczyk commented 11 months ago

simple reminder to KISS - the harder part is building a community here that involves folks submitting presentations imho

On Wed, Aug 9, 2023 at 8:02 PM Jeffrey Sica @.***> wrote:

I don’t mind everything in one repo tbh to start

It will all be in one repo, but we want to break it up into multiple YAML files otherwise we'll have something even more unwieldy than landscape or config.yaml again. :)

If we do this up front it'll be a lot easier.

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1671898559, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIMDCB4YUXU6KA5JW3LXUPGEPANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

cjyabraham commented 11 months ago

@jeefy , if we were to implement the multiple yaml file solution, that would suggest a one presenter can have many presentations. How would it accommodate a presentation where there are several presenters?

jeefy commented 11 months ago

My thought is it's up to every person to put in their own presentations, even if it's duplicating the "entry" (In the example PR I put a talk that I would have to duplicate for my own).

I think that's the best path forward given we want it to be easy for folks to maintain their data, at the expense of us having to dedupe entries. And to dedupe entries I'd just concat (title + join(presenter github handles)) and use that as a key. On the off chance that the titles or GitHub handles are misspelled, we can PR in a fix (or request the person do the same)

@cjyabraham @castrojo thoughts on that?

cjyabraham commented 10 months ago

I think it could be problematic and confusing. Duplicate entries could diverge when people edit/delete one copy of an entry but forget to update/delete the others.

What about going back to the single presentations.json file idea? When the file gets too large, we could possibly archive out all the oldest entries to a separate file to bring it back down to a reasonable size?

caniszczyk commented 10 months ago

single file please to start :)

On Thu, Aug 10, 2023 at 8:22 PM Chris Abraham @.***> wrote:

I think it could be problematic and confusing. Duplicate entries could diverge when people edit/delete one copy of an entry but forget to update/delete the others.

What about going back to the single presentations.json file idea? When the file gets too large, we could possibly archive out all the oldest entries to a separate file to bring it back down to a reasonable size?

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1673697398, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSINFPID3KN7AXF6N32TXUURGLANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

castrojo commented 10 months ago

Just to add some mental notes from discussing this with jeff/taylor. I think the flow looks like:

cjyabraham commented 10 months ago

Should the Presenter's GH be just the username part and not include the full url?

presenters: # Required
    - name: Abdellfetah SGHIOUAR
      github: https://github.com/boredabdel
    - name: Ana Margarita Medina
      github: https://github.com/AnaMMedina21

There could be variations in the base url that would result in duplicate entries?

jeefy commented 10 months ago

Yeah, sorry. When I PR'd in the "example", I actually thought the same thing and fixed it. See https://github.com/cncf/presentations/blob/master/people/mrbobbytables.yaml :)

cjyabraham commented 10 months ago

Ok. I've created a sample presentations.yaml file here to work on the import. LMK if it looks ok.

cjyabraham commented 10 months ago

What would be the best field to use as a key for a presentation? I could use the slides field, since it's required, however, if someone updates that field the import would treat it as a new entry. That kind of goes for all fields. I guess the question is which field is least likely to change after initial entry? name?

jeefy commented 10 months ago

I'd say use the slides field. That's least likely to change, and I think presentation name will likely have dupes that are unrelated.

On Mon, Aug 14, 2023 at 11:20 AM Chris Abraham @.***> wrote:

What would be the best field to use as a key for a presentation? I could use the slides field, since it's required, however, if someone updates that field the import would treat it as a new entry. That kind of goes for all fields. I guess the question is which field is least likely to change after initial entry? name?

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1677647424, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKUO6BCFJQENMIPQUHWPGDXVJF5BANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

cjyabraham commented 10 months ago

I've got the two yaml entries imported towards the top of the listing. The metadata is presented in the single post view below the description.

LMK what you think of the layout. Perhaps the "Presented By" line should go directly below the title?

cjyabraham commented 10 months ago

Also do I have the best set of filters at the top of the page? Would anyone want to filter by license?

castrojo commented 10 months ago

I don't think we need to filter by license (but IANAL) but I would think if the presentation wasn't redistributable we wouldn't have it in the repo anyway?

castrojo commented 10 months ago

Should I start by adding another person to https://github.com/cncf/presentations/blob/master/presentations.yaml ?

@jeefy can I just graft in the mrbobblytables example?

jeefy commented 10 months ago

@caniszczyk I'm fine with a single file for now, but we're going to have to break this file up into manageable chunks (probably by person as suggested) because a 50k line YAML file by next year sounds like a problem lol.

caniszczyk commented 10 months ago

We can celebrate when we get there if the site is actually used :)

On Wed, Aug 16, 2023 at 12:30 PM Jeffrey Sica @.***> wrote:

@caniszczyk https://github.com/caniszczyk I'm fine with a single file for now, but we're going to have to break this file up into manageable chunks (probably by person as suggested) because a 50k line YAML file by next year sounds like a problem lol.

— Reply to this email directly, view it on GitHub https://github.com/cncf/cncf.io/issues/757#issuecomment-1681013243, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAPSIMRFV3AN36LENJFR63XVT7THANCNFSM6AAAAAA2IPHUK4 . You are receiving this because you were mentioned.Message ID: <cncf/cncf. @.***>

-- Cheers,

Chris Aniszczyk https://aniszczyk.org

cjyabraham commented 10 months ago

@castrojo I can see you've added issues to the presentations repo that relate to the incoming data. I've added separate ones to the presentations-website repo that are relevant to the website. I'll close this main issue now that we are using these new lists.