Frederick Dixon
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee
  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    Kickoff session: https://demo.bigbluebutton.org/rooms/ggu-sze-sqf-bxr/join # Project worksheet for 19th BigBlueButton Developer Summit (Brazil, 2024) Hi everyone! Let's collaborate here using HackMD on the projects we want to do this developer summit (April 22th to April 26th). List the projects you are interested in seeing developed -- we'll likely have more projects than people, but let's capture all of the ideas. As with past summits, we'll form groups around the projects, sprint (hack) on them for the week, learn along the way, and give presentations starting at 14:00 on Friday, April 26th. Many of these projects will be using the latest build of BigBlueButton 3.0-dev. Here are some of the main project -- feel free to add your own or sign-up for an existing project. Plese edit/correct any information you see in the document. # Conference Participants ## In Person From Blindside Networks (Canada) - Anton Georgiev - Fred Dixon From iMDT (Brazil) - André Castro - Anton Barboza De Sa - Gabriel Luiz Porfirio - Guilherme Pereira Leme - Gustavo Trott - João Victor - Ramón Souza - Tainan Felipe Pauli De Almeida - Tiago Daniel Jacobs From Mconf (Brazil) - Átila Uebel - Arthur Böckmann Grossi - Bruno Guilherme Valentini - Felipe Cecagno - Júlia Palma Rathke - Lucas Fialho Zawacki - Paulo Renato Lanzarin - Rafaela Caroline Mônaco From Element.io - Timo Kandra ## Attending Remotely From RIADVICE (Tunisia) - Ghazi Triki From aufKurs.de (Germany) - Tim Korn (partially attending) From Blindside Networks (Canada) - Kert Browne From University of Mainz (Germany) - Jan Kessler - Malte From Mconf (São Tomé) - Germano Caumo Carniel From fairkom (Austria) - Roland Alton - Martin Klampfer (Tue) # Projects ## Integration with Element Element.io are the creators of the Matrix Protocol. Element is the most popular Matrix client. There are two variants to integration of BigBlueButton with Element. 1. Launch into a BigBlueButton from within Element 2. Enable BigBlueButton to join a Matrix channel and continue the discussion within BigBlueButton. We will be focussing on (1). Initial session recording https://pro.fairteaching.net/p/6a0479531fc476b0b782d5cd763c49fa85c4f640-1713815682648 - Phase 1: get again work the old dimension setup from HU berlin, may be the preferable solution if users are federated and use different clients, integrate widget without dimension. - Phase 2: sync RTC session state, show this information to join any call, even parallel calls in one room, we do that to add widget link, is directly integrated without dimension, we need then a JWT proxy server, we may use the wrapper for jitsi, we go with the smart ownership concept: one owner one membership event. non-element participants would not sync the state - Phase 3: livekit integration - get audio/video with joining native RTC sessions Members: Timo Kandra, Roland Alton, Jan Krammer, Martin Klampfer ## Away Mode Improvements - Mute microphone + camera when away. - Disable away when microphone is unmuted. - Avoid changing users userlist position when it is away. - Find a new place for the "Set yourself to away" button (discuss with design team) Members: Ramon ## Automated Testing ### Create Plugin Tests Create tests to ensure that new versions of BigBlueButton will work with the [plugin SDK samples](https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk/tree/main/samples), and also with the [official plugins](https://github.com/bigbluebutton/plugins). Members: Anton B. ### Enhance Failed Test Messages Members: Gabriel ### Host Test Reports Externally Allow developers to access test results directly from the pull request Members: Anton B. ## Removal of Meteor collections Remove all usages of server-side Meteor collections in BigBlueButton 3.0 Members: Tainan, João Victor ## BigBlueButton 3.0 stress tests Determine user capacity and system bottlenecks. Members: Tiago ## Support Multiple Connections per User Handle cases where a user opens multiple browser tabs of the same session Ideas: - ensure same `userId` for a given `externalUserId` - use `userId+sessionToken` as identifier for media, as userId will be duplicated - when duplicate a tab, tell user that sessionToken is already in use and offer to create a new session Members: Gustavo, Paulo ## Run BigBlueButton on ARM server Explore how far we can go running BBB on an ARM server. Members: Anton G ## Containerization / Kubernetes We want to explore the possibilities of running BigBlueButton under Kubernetes. [This article]( https://medium.com/l7mp-technologies/kubernetes-the-next-step-for-webrtc-fb8d8a33f24e) outlines the major technical challanges as well as ways to overcome them: Media Gateways. This project can be split in two major domains: #### Containerization efforts This can be done with docker-compose and without the complexity of a full Kubernetes setup. No Kubernetes knowledge is required, but basic understanding of containerization is helpful. - Bring the Container images up-to-date with BBB 3.0 (Update existing ones, add GraphQL, etc) - Alan has already started: https://github.com/bigbluebutton/docker/pull/313 #### K8S specific work Which this only takes off where the above has produced up-to-date pods, research can already start with this: - Explore [Stunner](https://github.com/l7mp/stunner), a k8s ingress gateway - looks good, exposes only one UDP port for all media and acts as TURN for all users - Explore how LiveKit works in containerized environments, particulary so that not all worker nodes require public IPs and the number of required ports is limited - Check the [Jitsi Kubernetes](https://github.com/jitsi-contrib/jitsi-kubernetes) project - Check cloud-native TURN implementations - Check if LiveKit can run on a single port per connection - Unfortunately not, see https://docs.livekit.io/realtime/self-hosting/ports-firewall/#Ports Once the Containerization efforts are complete, a helm or kustomize chart needs to be written, which can largely be converted from the docker compose file. After this summit, this effort aims to provide a clearer picture on how Kubernetes can provide benefits over a VM-based deployment in terms of - Maintenance - General scalability - Ad-hoc (e.g. per meeting) scalability - Reliability - we need for production root-less images It will most likely not result in a full BBB 3.0 in Kubernetes, but pave a significant part of the way. Members: Danimo ## LiveKit (part 2) Continue work on the LiveKit integration for BigBlueButton, initiated at the 18th BigBlueButton Developer Summit. The goal to achieve an initial, experimental LiveKit integration merged into the v3.0.x release (behind feature flags) Priorities include: - Merging a MVP integration for audio into v3.0.x-release. - Laying out a public roadmap for LiveKit integration and transition. Members: Paulo ## Tagged Server Support in Greenlight Since Scalelite now supports tagging of servers and a corresponding meta parameter in the create call, the aim is to prototype support for the feature in Greenlight. Members: Jan ## Plugin Improvements ### Core Improvements and Official Plugins - Review and improve pull requests about data channels + sub-data channels. - Review, improve and merge the first official plugins: - share-link - pick random user - decrease volume on speak - Review and improve documentation Members: Guilherme, Tiago ### New plugin: Personal notes Add a floating window for writing personal notes during the meeting (persisted to the server). Members: Tiago ### New plugin: Code Syntax Highlighting in Chat Messages We want to create a plugin that renders code in chat messages, just like github does in issues. Members: André ### New plugin: Typed captions We want to drop typed captions from core and write it as a plugin. Members: Guilherme ### New plugin: Interpretation fairkom had developed fairblue as an HTML5 replacement for interpreters in multilingual conferences, has been maintained up to BBB 2.5. Now we aim at a rewrite fairblue as a stand-alone service which is using the plugin SDK. To achieve this we need additional plugin hooks see https://github.com/bigbluebutton/bigbluebutton/issues/20016 Meta-Issue for relaunch of fairblue https://git.fairkom.net/hosting/chat/fairblue/-/issues/160 Members: Martin Klampfer, Roland Alton, Guilherme, Anton ### New plugin: YYY Members: ... ### Hybrid Teaching Plugin We want to further improve the prototype we developed at the Dev Summit in Berlin 2023. Members: Daniel Schreiber ### PHP Library Improvements The official PHP library is now popuplar with its 468k downloads. It needs a more detailed documentation that covers all its possiblities. Also it needs to cover 2.7 and 3.0 API. ## Design UX and UI ### Redesign of the User Interface One of our biggest challenges of de UX is the features dicoverability. We want to improve the users experiences by designing a prototype of a new UIwich is ease-to-use bay teachers and students. Members: Bruno, Júlia, Rafaela & Tyler ## Post to bigbluebutton-dev The BigBlueButton project is holding its 19th Developer Summit this week in Balneário Camboriú, Brazil (April 22 - 26th). At the summit, the core developers from around the world have been working together to advance our mission: to build the world's most effective virtual classroom measured in learning outcomes. Here's a video of the activity of the developers and designers working together https://youtu.be/U883xHbL2Vo We welcome everyone in our community to join us for live demos tomorrow at 17:00 UTC Time: Friday, April 26, 17:00 UTC Location: https://conference.meetbbb.org/rooms/vdo-o5x-tmg-dok The demos will be 5 - 10 minutes long and cover the following areas - BigBlueButton Project Update (Fred Dixon) - Supporting VIP meetings in ScaleLite (Jan Kessler) - Hybrid Teaching Plugin Update (Timo Nogueira Brockmeyer) - An update on integration with LiveKit (Paulo Renato Lanzarin) - Prototype integration of BigBlueButton with Element Matrix Client (Timo Kandra) - Progress made for a [Matrix bot](https://git.fairkom.net/hosting/chat/matrix-bigbluebutton-bot) being [refactored in golang](https://git.fairkom.net/hosting/chat/matrix-bigbluebutton-bot-go) to launch a BBB conference (Martin Klampfer, Roland Alton) - Architecture plan for [language interpretation service](https://git.fairkom.net/hosting/chat/fairblue/-/issues/160) for BBB 3+ (Martin Klampfer, Roland Alton) - Demo of support for LTI 1.3 (Jesus Federico, Mariam Almalki) - Stress testing BigBlueButton 3.0 - lambda strategy: Chrome headless and the full client loading (Tiago Jacobs) - jmeter strategy: just websocket connection, acting like a client, to profile how messages degrade under load (Felipe Cecagno) - Progress on refactoring BigBlueButton to use GraphQL (Tainan Felipe Pauli De Almeida) - Away Mode Improvements (Ramón Souza) - Improving quality of BigBlueButton through CI testing (Anton Barboza De Sa, Gabriel Luiz Porfirio) - Plugin for highlighted source code (André Castro) - Plugin for integrating with H5P (Guilherme Pereira Leme) - Enabling joining from multiple browser tabs or devices (Gustavo Trott, Tiago Jacobs) - Exploring running BigBlueButton under Kubernetes (Daniel Molkentin) - Experiences using the new plugin architecture for BigBlueButton 3.0 (Lucas Fialho Zawacki) - Prototype of Breakout Vision using tldraw 2.0 (Kert Brown) - A new design for the BigBlueButton UI (Rafaela Caroline Mônaco, Júlia Palma Rathke, Bruno Guilherme Valentini) Feel free to share the above information with others and invite anyone interested in the BigBlueButton project to attend the live demos.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully