Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Apache Training

Purpose of the project

The purpose of the Training project is to create high-quality training material for various projects in an open source form. Up until now everyone who wants to offer a Training course for one of the Apache projects needs to create her or his own slides/labs and keep them up-to-date. This is a significant investment of time and money. This project aims to spread that burden and help all Apache projects as we can create shared resources and we can also create cross-project training resources.

To sum up, the main goals for this project:

  • Develop shared material that can be used for training
  • Specifically create material about the ASF, how it works and how best to contribute
  • Cross-project
    • Focused on Apache but also 3rd party projects where it makes sense
    • Develop “labs” or “hands-on” exercises
  • Develop or document an infrastructure that can be used for those labs
  • Potentially develop tools to manage the material (e.g. a “slide” repository that contains “modules” that can be easily reused and combined)

These are non-goals for this project:

  • Some kind of official “Apache Training Program” with certifications etc.
    • Based on feedback and future developments this may change but we believe it’s out of scope initially
  • Project documentation
  • The training material we develop is not necessarily self-explanatory. It still benefits from an experienced instructor but it will enable talented people without the time or resources for developing and maintaining material to provide training.

Rationale

There are tons of companies offering training for and around the Apache ecosystem. From our experience, everyone is building a very similar set of slides and labs (there’s only so many ways you can explain a concept). This project aims to create and use synergies. By also bringing these resources closer to their origin we hope to improve quality, the freshness of the content and versatility (e.g. more language options).

It is the mission of the Apache foundation “to provide software for the public good” and we believe this project can help with that mission by making the software more accessible for a broader audience.

Next steps

The initial goal for the first few weeks or months is to have discussions and agreements on various scoping and technical issues as well as integrating existing donated material.

From there we want to start building a library of content.

Building locally

Apache Training makes use of several tools in order to compile the presentations. The probably simplest way to build the project is using Docker, as we provide the Dockerfile for installing all prerequisites.

docker compose up

This should produce compiled versions of all presentations in your local working copy.

Getting involved

The main resource for any discussion around this project is the dev mailing list (see below). If you have any specific question or want to get involved in any way, by all means, do so and reach out and say hi!

The following resources are currently being used by the project:

Dev Mailing List: Archive - Subscribe

Issues Mailing List: Archive - Subscribe

Commits Mailing List: Archive - Subscribe

Wiki: https://cwiki.apache.org/confluence/display/TRAINING

Jira: https://issues.apache.org/jira/browse/TRAINING

Git: Apache Repo - Github Mirror

About

Apache training

Topics

Resources

Code of conduct

Security policy

Stars

34 stars

Watchers

9 watching

Forks

Releases

Packages

Used by

Contributors

Languages