diff --git a/Gemfile b/Gemfile index 7334b63..81c2d11 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,13 @@ source "https://rubygems.org" gem "jekyll", "~> 4.3.0" gem "minima", "~> 2.5" +# Gems removed from Ruby 3.4 default stdlib — required by Jekyll & its dependencies +gem "csv" +gem "base64" +gem "bigdecimal" +gem "ostruct" +gem "logger" + group :jekyll_plugins do gem "jekyll-feed" end diff --git a/Gemfile.lock b/Gemfile.lock index 9ff2039..49d232c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,9 +3,11 @@ GEM specs: addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) + base64 (0.3.0) bigdecimal (4.1.2) colorator (1.1.0) concurrent-ruby (1.3.6) + csv (3.3.6) em-websocket (0.5.3) eventmachine (>= 0.12.9) http_parser.rb (~> 0) @@ -91,6 +93,7 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) + ostruct (0.6.3) pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (7.0.5) @@ -159,16 +162,23 @@ PLATFORMS x86_64-linux-musl DEPENDENCIES + base64 + bigdecimal + csv jekyll (~> 4.3.0) jekyll-feed + logger minima (~> 2.5) + ostruct CHECKSUMS addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd bundler (4.0.11) sha256=5bcec0fb78302e48d02ee46f10ee6e6942be647ba5b44a6d1ddfda9a240ce785 colorator (1.1.0) sha256=e2f85daf57af47d740db2a32191d1bdfb0f6503a0dfbc8327d0c9154d5ddfc38 concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab + csv (3.3.6) sha256=aba61e7e507a66f03d45cb1f3c4b6359861c3504038b422962875dce099e4456 em-websocket (0.5.3) sha256=f56a92bde4e6cb879256d58ee31f124181f68f8887bd14d53d5d9a292758c6a8 eventmachine (1.2.7) sha256=994016e42aa041477ba9cff45cbe50de2047f25dd418eba003e84f0d16560972 ffi (1.17.4) sha256=bcd1642e06f0d16fc9e09ac6d49c3a7298b9789bcb58127302f934e437d60acf @@ -206,6 +216,7 @@ CHECKSUMS logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 mercenary (0.4.0) sha256=b25a1e4a59adca88665e08e24acf0af30da5b5d859f7d8f38fba52c28f405138 minima (2.5.2) sha256=9c434e3b7bc4a0f0ab488910438ed3757a0502ff1060d172f361907fc38aa45a + ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912 pathutil (0.16.2) sha256=e43b74365631cab4f6d5e4228f812927efc9cb2c71e62976edcb252ee948d589 public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 diff --git a/README.md b/README.md index dbfb42a..1a08eff 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,33 @@ This is the website for Hacker Dojo. It is a collaborative hackerspace where tech enthusiasts gather to build, experiment and improve. +## Wiki Update Guide + +This repository builds the HackerDojo website from static files and a JSON data file that contains the wiki content. Staff can update the wiki without digging into the site’s build process by following these steps: + +1. **Edit the source wiki** – The raw wiki pages live in the sibling repository `hd-wiki` (located at `../hd-wiki`). Open the relevant HTML or Markdown file and make your changes. +2. **Generate the JSON data** – Run the extraction script that ships with this project: + ```bash + cd /home/zmillet/Documents/Web/hackerdojo.org + python3 extract_wiki.py + ``` + This script reads the updated wiki files and rewrites `static/js/wiki-data.js`. +3. **Commit the changes** – Stage the regenerated `wiki-data.js` and commit: + ```bash + git add static/js/wiki-data.js + git commit -m "Update wiki data $(date +%Y-%m-%d)" + ``` +4. **Push & rebuild** – Push the commit to the remote repository. The CI pipeline (or your local Jekyll server) will rebuild the site automatically. + +### Quick‑run helper script +For convenience, a small helper script `scripts/update_wiki.sh` is provided. It pulls the latest `hd-wiki` source (if present), runs the extractor, stages the JSON file, and creates a standard commit. + +```bash +./scripts/update_wiki.sh +``` + +Make sure the script is executable (`chmod +x scripts/update_wiki.sh`). + # Setup This project uses [Jekyll](https://jekyllrb.com/) which relies on [Ruby](https://www.ruby-lang.org/) diff --git a/_includes/footer.html b/_includes/footer.html index 00a9dec..2983564 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -15,7 +15,7 @@ Accelerator AI Stars Summer Camp - Wiki + Wiki
501(c)(3) Non-Profit
@@ -27,10 +27,10 @@ 501(c)(3) Docs
diff --git a/_includes/header.html b/_includes/header.html index 023cc15..219129c 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -47,10 +47,11 @@ Summer Camp Events + Wiki Startups Pricing Impact Report - Donate + Donate
@@ -83,11 +84,11 @@ AI Stars Summer Camp - Wiki + Wiki Startups Pricing Impact Report - Donate + Donate Dojo Earth 🌍 Take A Tour
diff --git a/pages/home/accelerator.html b/pages/home/accelerator.html index 2a3a35e..65e9a70 100644 --- a/pages/home/accelerator.html +++ b/pages/home/accelerator.html @@ -1267,7 +1267,7 @@
Hacker Dojo
  • Main site
  • Startups
  • Events
  • -
  • Donate today!
  • +
  • Donate today!
  • diff --git a/pages/home/hero.html b/pages/home/hero.html index a158114..8f5f44e 100644 --- a/pages/home/hero.html +++ b/pages/home/hero.html @@ -16,7 +16,7 @@
    + + + + + + + diff --git a/pages/wiki/wiki-page.html b/pages/wiki/wiki-page.html new file mode 100644 index 0000000..d887a56 --- /dev/null +++ b/pages/wiki/wiki-page.html @@ -0,0 +1,2303 @@ + + + + + + + Hacker Dojo Wiki — Community Knowledge Base + + + + + + + + + + + + +
    + + + + + +
    +
    +
    + + + + + + / +
    + +
    + + + + + + + + + +
    +
    +
    + + +
    + + + + +
    + +
    + + +

    Article Title

    + +
    + + + + + + + + + Edit on GitHub + +
    +
    + + + + + + + + +
    + +
    + + + +
    +
    + + +
    +
    +
    +

    + ✏️ Propose Wiki Revision +

    + +
    +
    +

    + The Hacker Dojo wiki is community-driven. You can submit changes directly on GitHub or send a quick note to + operations. +

    + + + + + Open Pull Request on GitHub + +
    or send notes to management
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    +
    +
    +
    + + +
    + Enlarged view +
    + +
    + + + + + + + \ No newline at end of file diff --git a/scripts/update_wiki.sh b/scripts/update_wiki.sh new file mode 100644 index 0000000..8fc755d --- /dev/null +++ b/scripts/update_wiki.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Helper script for staff to update the wiki data used by the website. +# It assumes the hd-wiki source repository is located at ../hd-wiki relative to this site repo. +# The extraction script `extract_wiki.py` must be present in the project root. + +set -euo pipefail + +# Update hd-wiki source if present +if [ -d "../hd-wiki" ]; then + echo "Updating hd-wiki repository..." + (cd ../hd-wiki && git pull --ff-only) +else + echo "Warning: ../hd-wiki not found – you may need to clone it manually." +fi + +# Run the extraction script to regenerate static/js/wiki-data.js +echo "Running wiki extraction..." +python3 extract_wiki.py + +# Stage and commit the changes +git add static/js/wiki-data.js +git commit -m "Update wiki data $(date +%Y-%m-%d)" + +echo "Wiki data updated and committed." diff --git a/static/css/style.css b/static/css/style.css index 1f89d09..d622a0b 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -146,28 +146,35 @@ body { } #header { - width: 95%; + max-width: 1360px; + width: 100%; line-height: 40px; - margin: auto; + margin: 0 auto; display: flex; align-items: center; - justify-content: center; + justify-content: space-between; position: relative; z-index: 20; - padding: 20px 0px; - margin: 0 20px 0 20px; + padding: 16px 24px; + box-sizing: border-box; } #header-left { - float: left; + display: flex; + align-items: center; + flex-shrink: 0; } #header-right { - height: 30px; + display: flex; + align-items: center; + gap: 12px; + flex-shrink: 0; } #header-logo { display:flex; + align-items: center; flex-wrap:nowrap; } @@ -176,42 +183,46 @@ body { box-sizing: border-box; } -/* #header-right a { - -} */ - -/* #header-right svg { - float: left; - width: 30px !important; - height: 30px !important; -} */ - #logo-icon { width: 40px; - float: left; + height: 40px; margin-right: 12px; } #logo-text { - float: left; text-transform: uppercase; color: #000; - font-size: 18px; + font-size: 19px; letter-spacing: 1px; - font-weight: 500; - margin-right: 20px; + font-weight: 600; + margin-right: 15px; + font-family: 'Rajdhani', sans-serif; } -#top-navigation {} +#top-navigation { + display: flex; + align-items: center; + gap: 6px; + flex-wrap: wrap; + justify-content: center; +} #top-navigation a { - float: left; - color:#000; - font-size: 15px; - letter-spacing: 0.4px; - font-weight: 500; + color: #2d3748; + font-size: 14px; + letter-spacing: 0.5px; + font-weight: 600; text-transform: uppercase; - margin: 0px 15px; + padding: 6px 11px; + border-radius: 8px; + margin: 0; + transition: all 0.15s ease; + white-space: nowrap; +} + +#top-navigation a:hover { + color: #df3f33; + background: rgba(223, 63, 51, 0.08); } .top-navigation-link { @@ -372,15 +383,30 @@ body { } #hero-links { - max-width: 560px; + max-width: 760px; margin: auto; - text-align: center; - display: grid; - grid-template-columns: 1fr 1fr 1fr; - grid-gap: 10px; + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: center; + gap: 12px; +} + +#hero-links a { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 12px 24px; + border-radius: 12px; + transition: all 0.2s ease; + box-shadow: 0 2px 8px rgba(0,0,0,0.06); + white-space: nowrap; } -#hero-links a {} +#hero-links a:hover { + transform: translateY(-2px); + box-shadow: 0 6px 16px rgba(0,0,0,0.12); +} #hero-icon-bg { width: 680px; @@ -1065,25 +1091,26 @@ body { #footer-holder { display: flex; flex-direction: row; - max-width: 960px; - width:100%; - margin:auto; + justify-content: space-between; + max-width: 1200px; + width: 100%; + margin: auto; background: #000; margin-top: auto; - padding: 30px 20px 40px 20px; - color:#fff; + padding: 40px 24px; + color: #fff; + gap: 32px; + box-sizing: border-box; } - -#footer-holder>div { - display:flex; - flex-direction:column; - justify-content: space-between; - width:60%; +#footer-holder > div { + display: flex; + flex-direction: column; + flex: 1; } -#footer-holder>div:last-child { - width:30%; +#footer-holder > div:first-child { + flex: 1.2; } diff --git a/static/css/wiki.css b/static/css/wiki.css new file mode 100644 index 0000000..ce937fd --- /dev/null +++ b/static/css/wiki.css @@ -0,0 +1,1099 @@ +/* ══════════════════════════════════════════════════════════════ + Hacker Dojo Wiki Stylesheet + Modern, responsive, integrated with Nexudus makerspace portal + ══════════════════════════════════════════════════════════════ */ + +:root { + --wiki-bg: #f8f9fa; + --wiki-surface: #ffffff; + --wiki-border: #e2e8f0; + --wiki-border-light: #edf2f7; + --wiki-text-primary: #1a202c; + --wiki-text-secondary: #4a5568; + --wiki-text-muted: #718096; + --wiki-accent-red: #df3f33; + --wiki-accent-red-hover: #c42f24; + --wiki-accent-red-subtle: #fff5f5; + --wiki-nexudus-purple: #6d3bdb; + --wiki-nexudus-purple-subtle: #f3e8ff; + --wiki-sidebar-width: 320px; + --wiki-toc-width: 260px; + --wiki-radius: 12px; + --wiki-radius-sm: 8px; + --wiki-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.06), 0 2px 6px -1px rgba(0, 0, 0, 0.04); + --wiki-shadow-lg: 0 10px 30px -5px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.05); +} + +.wiki-container { + font-family: 'Saira', sans-serif; + color: var(--wiki-text-primary); + background: var(--wiki-bg); + min-height: calc(100vh - 160px); + padding: 0 0 60px 0; + position: relative; +} + +/* ═══ Top Hero / Header Bar ═══ */ +.wiki-hero { + background: linear-gradient(135deg, #181c24 0%, #0f1218 100%); + color: #ffffff; + padding: 40px 24px; + position: relative; + border-bottom: 2px solid #2d3748; +} + +.wiki-hero-inner { + max-width: 1360px; + margin: 0 auto; + display: flex; + flex-direction: column; + gap: 20px; +} + +.wiki-hero-top { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 16px; +} + +.wiki-badge-group { + display: flex; + align-items: center; + gap: 10px; + flex-wrap: wrap; +} + +.wiki-badge { + display: inline-flex; + align-items: center; + gap: 6px; + background: rgba(223, 63, 51, 0.15); + border: 1px solid rgba(223, 63, 51, 0.4); + color: #ff8b82; + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 13px; + text-transform: uppercase; + letter-spacing: 0.8px; + padding: 4px 12px; + border-radius: 999px; +} + +.wiki-badge-archive { + background: rgba(255, 255, 255, 0.1); + border: 1px solid rgba(255, 255, 255, 0.2); + color: #cbd5e0; +} + +.wiki-hero-title { + font-family: 'Rajdhani', sans-serif; + font-size: 38px; + font-weight: 800; + line-height: 1.15; + letter-spacing: -0.5px; + margin: 0; + color: #ffffff; +} + +.wiki-hero-subtitle { + font-size: 16px; + color: #a0aec0; + max-width: 720px; + line-height: 1.5; + margin: 0; +} + +/* Nexudus Member Action in Hero */ +.wiki-nexudus-hero-box { + display: flex; + align-items: center; + gap: 12px; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.12); + backdrop-filter: blur(8px); + padding: 10px 16px; + border-radius: var(--wiki-radius); +} + +.wiki-member-btn { + display: inline-flex; + align-items: center; + gap: 8px; + background: var(--wiki-accent-red); + color: #ffffff !important; + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 15px; + padding: 8px 16px; + border-radius: 8px; + border: none; + cursor: pointer; + text-decoration: none; + transition: all 0.2s ease; + white-space: nowrap; +} + +.wiki-member-btn:hover { + background: var(--wiki-accent-red-hover); + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(223, 63, 51, 0.35); +} + +.wiki-member-badge { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 13px; + color: #e2e8f0; +} + +.wiki-member-badge .status-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #48bb78; + display: inline-block; +} + +/* ═══ Search & Filter Bar ═══ */ +.wiki-search-section { + max-width: 1360px; + margin: -24px auto 24px; + padding: 0 24px; + position: relative; + z-index: 10; +} + +.wiki-search-card { + background: var(--wiki-surface); + border-radius: var(--wiki-radius); + box-shadow: var(--wiki-shadow-lg); + border: 1px solid var(--wiki-border); + padding: 16px 20px; + display: flex; + flex-direction: column; + gap: 14px; +} + +.wiki-search-input-wrapper { + position: relative; + display: flex; + align-items: center; +} + +.wiki-search-icon { + position: absolute; + left: 16px; + color: var(--wiki-text-muted); + width: 20px; + height: 20px; + pointer-events: none; +} + +.wiki-search-input { + width: 100%; + font-family: 'Saira', sans-serif; + font-size: 16px; + padding: 14px 44px 14px 48px; + border: 2px solid var(--wiki-border); + border-radius: 10px; + background: #fcfdfd; + color: var(--wiki-text-primary); + outline: none; + transition: all 0.2s ease; +} + +.wiki-search-input:focus { + border-color: var(--wiki-accent-red); + background: #ffffff; + box-shadow: 0 0 0 4px rgba(223, 63, 51, 0.12); +} + +.wiki-search-clear { + position: absolute; + right: 48px; + background: none; + border: none; + color: var(--wiki-text-muted); + font-size: 18px; + cursor: pointer; + display: none; + padding: 4px; +} + +.wiki-search-shortcut { + position: absolute; + right: 14px; + background: var(--wiki-border-light); + border: 1px solid var(--wiki-border); + color: var(--wiki-text-muted); + font-family: monospace; + font-size: 12px; + padding: 3px 8px; + border-radius: 4px; + pointer-events: none; +} + +/* Category Filter Pills */ +.wiki-cat-filters { + display: flex; + gap: 8px; + overflow-x: auto; + padding-bottom: 4px; + scrollbar-width: none; +} +.wiki-cat-filters::-webkit-scrollbar { + display: none; +} + +.wiki-cat-pill { + display: inline-flex; + align-items: center; + gap: 6px; + background: var(--wiki-border-light); + border: 1px solid var(--wiki-border); + color: var(--wiki-text-secondary); + font-family: 'Rajdhani', sans-serif; + font-weight: 600; + font-size: 14px; + padding: 6px 14px; + border-radius: 20px; + cursor: pointer; + white-space: nowrap; + transition: all 0.15s ease; +} + +.wiki-cat-pill:hover { + background: #e2e8f0; + color: var(--wiki-text-primary); +} + +.wiki-cat-pill.active { + background: #1a202c; + border-color: #1a202c; + color: #ffffff; +} + +.wiki-cat-pill.pill-nexudus { + border-color: rgba(109, 59, 219, 0.3); + color: var(--wiki-nexudus-purple); + background: var(--wiki-nexudus-purple-subtle); +} +.wiki-cat-pill.pill-nexudus.active { + background: var(--wiki-nexudus-purple); + color: #ffffff; +} + +/* ═══ Main App Layout ═══ */ +.wiki-main-layout { + max-width: 1360px; + margin: 0 auto; + padding: 0 24px; + display: grid; + grid-template-columns: var(--wiki-sidebar-width) 1fr; + gap: 24px; + align-items: start; +} + +/* ═══ Sidebar ═══ */ +.wiki-sidebar { + background: var(--wiki-surface); + border-radius: var(--wiki-radius); + border: 1px solid var(--wiki-border); + box-shadow: var(--wiki-shadow); + padding: 16px; + position: sticky; + top: 24px; + max-height: calc(100vh - 48px); + overflow-y: auto; + display: flex; + flex-direction: column; + gap: 16px; +} + +.wiki-sidebar::-webkit-scrollbar { + width: 5px; +} +.wiki-sidebar::-webkit-scrollbar-thumb { + background: #cbd5e0; + border-radius: 4px; +} + +.wiki-sidebar-header { + display: flex; + justify-content: space-between; + align-items: center; + padding-bottom: 12px; + border-bottom: 1px solid var(--wiki-border-light); +} + +.wiki-sidebar-title { + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 16px; + text-transform: uppercase; + letter-spacing: 0.6px; + color: var(--wiki-text-muted); +} + +.wiki-article-count { + font-size: 12px; + background: var(--wiki-border-light); + color: var(--wiki-text-muted); + padding: 2px 8px; + border-radius: 12px; + font-weight: 600; +} + +/* Grouped navigation */ +.wiki-nav-group { + display: flex; + flex-direction: column; + gap: 4px; +} + +.wiki-nav-group-title { + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 12px; + text-transform: uppercase; + letter-spacing: 1px; + color: var(--wiki-text-muted); + padding: 8px 10px 4px; +} + +.wiki-nav-item { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + padding: 8px 12px; + border-radius: var(--wiki-radius-sm); + color: var(--wiki-text-secondary); + text-decoration: none; + font-size: 14px; + font-weight: 500; + transition: all 0.15s ease; + border-left: 3px solid transparent; +} + +.wiki-nav-item:hover { + background: var(--wiki-border-light); + color: var(--wiki-text-primary); +} + +.wiki-nav-item.active { + background: var(--wiki-accent-red-subtle); + color: var(--wiki-accent-red); + border-left-color: var(--wiki-accent-red); + font-weight: 600; +} + +.wiki-nav-item-left { + display: flex; + align-items: center; + gap: 8px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.wiki-nav-item-icon { + font-size: 16px; + flex-shrink: 0; +} + +.wiki-nav-item-text { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.wiki-nav-nexudus-badge { + font-size: 10px; + background: var(--wiki-nexudus-purple-subtle); + color: var(--wiki-nexudus-purple); + padding: 1px 6px; + border-radius: 4px; + font-weight: 700; + flex-shrink: 0; +} + +/* Sidebar Nexudus Card */ +.wiki-sidebar-nexudus-card { + background: linear-gradient(135deg, #2a1b4e 0%, #171126 100%); + border-radius: var(--wiki-radius-sm); + padding: 14px; + color: #ffffff; + margin-top: auto; +} + +.wiki-sidebar-nexudus-card h4 { + font-family: 'Rajdhani', sans-serif; + font-size: 14px; + font-weight: 700; + margin: 0 0 4px; + display: flex; + align-items: center; + gap: 6px; + color: #d6bcfa; +} + +.wiki-sidebar-nexudus-card p { + font-size: 12px; + color: #cbd5e0; + line-height: 1.4; + margin: 0 0 10px; +} + +.wiki-sidebar-nexudus-card a { + display: inline-block; + background: #6d3bdb; + color: #ffffff !important; + font-family: 'Rajdhani', sans-serif; + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.5px; + padding: 6px 12px; + border-radius: 6px; + text-decoration: none; +} + +.wiki-sidebar-nexudus-card a:hover { + background: #7c4beb; +} + +/* ═══ Main Article Card ═══ */ +.wiki-article-card { + background: var(--wiki-surface); + border-radius: var(--wiki-radius); + border: 1px solid var(--wiki-border); + box-shadow: var(--wiki-shadow); + padding: 32px 40px; + min-height: 500px; + position: relative; +} + +/* Article Header */ +.wiki-article-header { + border-bottom: 1px solid var(--wiki-border-light); + padding-bottom: 24px; + margin-bottom: 28px; +} + +.wiki-article-meta-row { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 12px; + margin-bottom: 12px; +} + +.wiki-article-cat-badge { + display: inline-flex; + align-items: center; + gap: 6px; + background: var(--wiki-border-light); + color: var(--wiki-text-secondary); + font-size: 12px; + font-weight: 600; + padding: 3px 10px; + border-radius: 6px; +} + +.wiki-article-stats { + display: flex; + align-items: center; + gap: 14px; + font-size: 13px; + color: var(--wiki-text-muted); +} + +.wiki-article-title { + font-family: 'Rajdhani', sans-serif; + font-size: 36px; + font-weight: 800; + line-height: 1.2; + color: var(--wiki-text-primary); + margin: 0 0 16px; +} + +.wiki-article-actions { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; +} + +.wiki-action-btn { + display: inline-flex; + align-items: center; + gap: 6px; + background: #ffffff; + border: 1px solid var(--wiki-border); + color: var(--wiki-text-secondary); + font-size: 13px; + font-weight: 500; + padding: 6px 12px; + border-radius: 6px; + cursor: pointer; + transition: all 0.15s ease; +} + +.wiki-action-btn:hover { + background: var(--wiki-border-light); + color: var(--wiki-text-primary); +} + +.wiki-action-btn.bookmarked { + background: #fffaf0; + border-color: #fbd38d; + color: #c05621; +} + +/* ═══ Nexudus Article Banner ═══ */ +.wiki-nexudus-banner { + background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%); + border: 1px solid #cbd5e0; + border-left: 4px solid var(--wiki-nexudus-purple); + border-radius: var(--wiki-radius-sm); + padding: 16px 20px; + margin: 0 0 28px; + display: flex; + justify-content: space-between; + align-items: center; + gap: 16px; + flex-wrap: wrap; +} + +.wiki-nexudus-banner-info h4 { + font-family: 'Rajdhani', sans-serif; + font-size: 18px; + font-weight: 700; + margin: 0 0 4px; + color: var(--wiki-text-primary); + display: flex; + align-items: center; + gap: 8px; +} + +.wiki-nexudus-banner-badge { + font-size: 11px; + background: var(--wiki-nexudus-purple); + color: #ffffff; + padding: 2px 8px; + border-radius: 4px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.wiki-nexudus-banner-info p { + font-size: 14px; + color: var(--wiki-text-secondary); + margin: 0; + line-height: 1.4; +} + +.wiki-nexudus-banner-btn { + display: inline-flex; + align-items: center; + gap: 6px; + background: var(--wiki-nexudus-purple); + color: #ffffff !important; + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 15px; + padding: 10px 18px; + border-radius: 8px; + text-decoration: none; + white-space: nowrap; + transition: all 0.2s ease; +} + +.wiki-nexudus-banner-btn:hover { + background: #5b28c2; + box-shadow: 0 4px 12px rgba(109, 59, 219, 0.3); + transform: translateY(-1px); +} + +/* ═══ Table of Contents (Floating / Inline) ═══ */ +.wiki-toc-wrapper { + background: #f8fafc; + border: 1px solid var(--wiki-border); + border-radius: var(--wiki-radius-sm); + padding: 16px 20px; + margin-bottom: 30px; +} + +.wiki-toc-title { + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + font-size: 15px; + text-transform: uppercase; + letter-spacing: 0.5px; + color: var(--wiki-text-muted); + margin: 0 0 10px; + display: flex; + align-items: center; + gap: 6px; +} + +.wiki-toc-list { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 6px; + max-height: 240px; + overflow-y: auto; +} + +.wiki-toc-item { + font-size: 13.5px; + line-height: 1.4; +} + +.wiki-toc-item.level-3 { + padding-left: 16px; + font-size: 13px; +} + +.wiki-toc-item a { + color: var(--wiki-text-secondary); + text-decoration: none; + transition: color 0.15s ease; +} + +.wiki-toc-item a:hover { + color: var(--wiki-accent-red); + text-decoration: underline; +} + +/* ═══ Article Content Formatting ═══ */ +.wiki-article-body { + font-size: 15px; + line-height: 1.7; + color: #2d3748; +} + +.wiki-article-body h2 { + font-family: 'Rajdhani', sans-serif; + font-size: 26px; + font-weight: 700; + color: #1a202c; + margin: 36px 0 16px; + padding-bottom: 8px; + border-bottom: 2px solid var(--wiki-border-light); +} + +.wiki-article-body h3 { + font-family: 'Rajdhani', sans-serif; + font-size: 21px; + font-weight: 600; + color: #2d3748; + margin: 28px 0 12px; +} + +.wiki-article-body h4, .wiki-article-body h5 { + font-family: 'Rajdhani', sans-serif; + font-size: 17px; + font-weight: 600; + color: #4a5568; + margin: 20px 0 8px; +} + +.wiki-article-body p { + margin-bottom: 16px; +} + +.wiki-article-body ul, .wiki-article-body ol { + margin: 0 0 18px 24px; + padding: 0; +} + +.wiki-article-body li { + margin-bottom: 8px; +} + +.wiki-article-body strong, .wiki-article-body b { + font-weight: 700; + color: #1a202c; +} + +.wiki-article-body a { + color: var(--wiki-accent-red); + text-decoration: underline; + text-underline-offset: 3px; +} + +.wiki-article-body a:hover { + color: var(--wiki-accent-red-hover); +} + +/* Tables */ +.wiki-article-body table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; + font-size: 14px; + background: #ffffff; + border: 1px solid var(--wiki-border); + border-radius: var(--wiki-radius-sm); + overflow: hidden; +} + +.wiki-article-body th { + background: #f7fafc; + color: #2d3748; + font-family: 'Rajdhani', sans-serif; + font-weight: 700; + text-align: left; + padding: 10px 14px; + border-bottom: 2px solid var(--wiki-border); +} + +.wiki-article-body td { + padding: 10px 14px; + border-bottom: 1px solid var(--wiki-border-light); + color: #4a5568; +} + +.wiki-article-body tr:last-child td { + border-bottom: none; +} + +.wiki-article-body tr:hover td { + background: #f8fafc; +} + +/* Code & Pre */ +.wiki-article-body pre, .wiki-article-body code { + font-family: Consolas, Monaco, 'Courier New', monospace; +} + +.wiki-article-body code { + background: #edf2f7; + padding: 2px 6px; + border-radius: 4px; + font-size: 13px; + color: #805ad5; +} + +.wiki-article-body pre { + background: #1a202c; + color: #e2e8f0; + padding: 16px; + border-radius: var(--wiki-radius-sm); + overflow-x: auto; + margin: 16px 0; +} + +.wiki-article-body pre code { + background: transparent; + color: inherit; + padding: 0; +} + +/* Wiki Images */ +.wiki-img { + max-width: 100%; + height: auto; + border-radius: var(--wiki-radius-sm); + border: 1px solid var(--wiki-border); + margin: 16px 0; + display: block; + box-shadow: var(--wiki-shadow); + cursor: zoom-in; + transition: transform 0.2s ease; +} + +.wiki-img:hover { + transform: scale(1.01); +} + +.thumb { + margin: 16px 0; +} +.thumbinner { + max-width: 100%; + background: #f7fafc; + border: 1px solid var(--wiki-border); + padding: 6px; + border-radius: var(--wiki-radius-sm); +} +.thumbcaption { + font-size: 13px; + color: var(--wiki-text-muted); + padding: 6px 4px 2px; +} + +/* ═══ Lightbox Modal for Images ═══ */ +.wiki-lightbox { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.85); + display: none; + justify-content: center; + align-items: center; + z-index: 9999; + cursor: zoom-out; + padding: 20px; +} + +.wiki-lightbox.active { + display: flex; +} + +.wiki-lightbox img { + max-width: 90vw; + max-height: 90vh; + border-radius: 8px; + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); +} + +/* ═══ Nexudus Login Modal ═══ */ +.wiki-modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: rgba(15, 23, 42, 0.7); + backdrop-filter: blur(4px); + display: none; + justify-content: center; + align-items: center; + z-index: 9998; + padding: 20px; +} + +.wiki-modal-overlay.active { + display: flex; +} + +.wiki-modal-card { + background: #ffffff; + width: 100%; + max-width: 480px; + border-radius: var(--wiki-radius); + box-shadow: var(--wiki-shadow-lg); + border: 1px solid var(--wiki-border); + overflow: hidden; + animation: modalSlideUp 0.25s ease forwards; +} + +@keyframes modalSlideUp { + from { opacity: 0; transform: translateY(20px); } + to { opacity: 1; transform: translateY(0); } +} + +.wiki-modal-header { + background: linear-gradient(135deg, #181c24 0%, #0f1218 100%); + color: #ffffff; + padding: 20px 24px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.wiki-modal-title { + font-family: 'Rajdhani', sans-serif; + font-size: 20px; + font-weight: 700; + margin: 0; + display: flex; + align-items: center; + gap: 8px; +} + +.wiki-modal-close { + background: none; + border: none; + color: #cbd5e0; + font-size: 24px; + cursor: pointer; + line-height: 1; +} + +.wiki-modal-close:hover { + color: #ffffff; +} + +.wiki-modal-body { + padding: 24px; +} + +.wiki-modal-desc { + font-size: 14px; + color: var(--wiki-text-secondary); + line-height: 1.5; + margin-bottom: 20px; +} + +.wiki-nexudus-direct-btn { + display: flex; + align-items: center; + justify-content: center; + gap: 10px; + background: var(--wiki-nexudus-purple); + color: #ffffff !important; + font-family: 'Rajdhani', sans-serif; + font-size: 16px; + font-weight: 700; + padding: 14px; + border-radius: 8px; + text-decoration: none; + margin-bottom: 20px; + transition: all 0.2s ease; + box-shadow: 0 4px 12px rgba(109, 59, 219, 0.25); +} + +.wiki-nexudus-direct-btn:hover { + background: #5b28c2; + transform: translateY(-1px); +} + +.wiki-divider { + display: flex; + align-items: center; + text-align: center; + margin: 20px 0; + color: var(--wiki-text-muted); + font-size: 12px; + text-transform: uppercase; + letter-spacing: 1px; +} + +.wiki-divider::before, .wiki-divider::after { + content: ''; + flex: 1; + border-bottom: 1px solid var(--wiki-border); +} + +.wiki-divider span { + padding: 0 10px; +} + +.wiki-login-form { + display: flex; + flex-direction: column; + gap: 14px; +} + +.wiki-form-group { + display: flex; + flex-direction: column; + gap: 6px; +} + +.wiki-form-label { + font-size: 13px; + font-weight: 600; + color: var(--wiki-text-primary); +} + +.wiki-form-input { + padding: 10px 14px; + border: 1px solid var(--wiki-border); + border-radius: 6px; + font-size: 14px; + outline: none; +} + +.wiki-form-input:focus { + border-color: var(--wiki-accent-red); +} + +.wiki-submit-btn { + background: var(--wiki-accent-red); + color: #ffffff; + border: none; + font-family: 'Rajdhani', sans-serif; + font-size: 15px; + font-weight: 700; + padding: 12px; + border-radius: 6px; + cursor: pointer; + transition: background 0.15s ease; +} + +.wiki-submit-btn:hover { + background: var(--wiki-accent-red-hover); +} + +.wiki-modal-footer { + background: #f8fafc; + border-top: 1px solid var(--wiki-border); + padding: 14px 24px; + text-align: center; + font-size: 13px; + color: var(--wiki-text-secondary); +} + +.wiki-modal-footer a { + color: var(--wiki-accent-red); + font-weight: 600; +} + +/* ═══ Edit Suggestion Modal ═══ */ +.wiki-edit-modal-card { + max-width: 560px; +} + +.wiki-textarea { + width: 100%; + padding: 12px; + border: 1px solid var(--wiki-border); + border-radius: 6px; + font-family: 'Saira', sans-serif; + font-size: 14px; + resize: vertical; + min-height: 120px; + outline: none; +} + +.wiki-textarea:focus { + border-color: var(--wiki-accent-red); +} + +/* ═══ Responsive Breakpoints ═══ */ +@media (max-width: 1024px) { + .wiki-main-layout { + grid-template-columns: 280px 1fr; + gap: 16px; + } + .wiki-article-card { + padding: 24px; + } +} + +@media (max-width: 768px) { + .wiki-hero-title { + font-size: 28px; + } + .wiki-main-layout { + grid-template-columns: 1fr; + } + .wiki-sidebar { + position: static; + max-height: none; + } + .wiki-article-card { + padding: 20px 16px; + } + .wiki-article-title { + font-size: 26px; + } + .wiki-nexudus-banner { + flex-direction: column; + align-items: flex-start; + } +} diff --git a/static/images/wiki/3D_Print_BambuLabs_X1_Espresso_Tamper.jpg b/static/images/wiki/3D_Print_BambuLabs_X1_Espresso_Tamper.jpg new file mode 100644 index 0000000..79ac690 Binary files /dev/null and b/static/images/wiki/3D_Print_BambuLabs_X1_Espresso_Tamper.jpg differ diff --git a/static/images/wiki/3D_Print_Replacement_Shelving_Foot.jpg b/static/images/wiki/3D_Print_Replacement_Shelving_Foot.jpg new file mode 100644 index 0000000..dc10304 Binary files /dev/null and b/static/images/wiki/3D_Print_Replacement_Shelving_Foot.jpg differ diff --git a/static/images/wiki/3D_Prints_and_Electronics_Lab_Projects_Shelf.jpg b/static/images/wiki/3D_Prints_and_Electronics_Lab_Projects_Shelf.jpg new file mode 100644 index 0000000..50b131e Binary files /dev/null and b/static/images/wiki/3D_Prints_and_Electronics_Lab_Projects_Shelf.jpg differ diff --git a/static/images/wiki/Andre_3D_Print_Heat_Color_Change_Hacker_Dojo_Logo_Puck.jpg b/static/images/wiki/Andre_3D_Print_Heat_Color_Change_Hacker_Dojo_Logo_Puck.jpg new file mode 100644 index 0000000..11ea8f0 Binary files /dev/null and b/static/images/wiki/Andre_3D_Print_Heat_Color_Change_Hacker_Dojo_Logo_Puck.jpg differ diff --git a/static/images/wiki/Andre_3D_Print_Heat_Color_Change_QR_Code_Puck.jpg b/static/images/wiki/Andre_3D_Print_Heat_Color_Change_QR_Code_Puck.jpg new file mode 100644 index 0000000..2b1a9b9 Binary files /dev/null and b/static/images/wiki/Andre_3D_Print_Heat_Color_Change_QR_Code_Puck.jpg differ diff --git a/static/images/wiki/Atari-Pong-Schematic.gif b/static/images/wiki/Atari-Pong-Schematic.gif new file mode 100644 index 0000000..0e850c6 Binary files /dev/null and b/static/images/wiki/Atari-Pong-Schematic.gif differ diff --git a/static/images/wiki/Atari-Pong-Schematic3c9d.gif b/static/images/wiki/Atari-Pong-Schematic3c9d.gif new file mode 100644 index 0000000..0e850c6 Binary files /dev/null and b/static/images/wiki/Atari-Pong-Schematic3c9d.gif differ diff --git a/static/images/wiki/DEFA1337_Shaded_Milliways_N0153_d09_v_v_v_v_v_V.jpg b/static/images/wiki/DEFA1337_Shaded_Milliways_N0153_d09_v_v_v_v_v_V.jpg new file mode 100644 index 0000000..02017cc Binary files /dev/null and b/static/images/wiki/DEFA1337_Shaded_Milliways_N0153_d09_v_v_v_v_v_V.jpg differ diff --git a/static/images/wiki/Lawn-Tennis-Vertical-Sync.png b/static/images/wiki/Lawn-Tennis-Vertical-Sync.png new file mode 100644 index 0000000..7f26830 Binary files /dev/null and b/static/images/wiki/Lawn-Tennis-Vertical-Sync.png differ diff --git a/static/images/wiki/LogoDarkonLight.png b/static/images/wiki/LogoDarkonLight.png new file mode 100644 index 0000000..97947b9 Binary files /dev/null and b/static/images/wiki/LogoDarkonLight.png differ diff --git a/static/images/wiki/Logo_RegularFill.jpg b/static/images/wiki/Logo_RegularFill.jpg new file mode 100644 index 0000000..2711a16 Binary files /dev/null and b/static/images/wiki/Logo_RegularFill.jpg differ diff --git a/static/images/wiki/PRUSA_MINI_Printed_MK3S_Replacement_Part.jpg b/static/images/wiki/PRUSA_MINI_Printed_MK3S_Replacement_Part.jpg new file mode 100644 index 0000000..1219acf Binary files /dev/null and b/static/images/wiki/PRUSA_MINI_Printed_MK3S_Replacement_Part.jpg differ diff --git a/static/images/wiki/QSV_Bench_Dark_Mode_Enabled.jpg b/static/images/wiki/QSV_Bench_Dark_Mode_Enabled.jpg new file mode 100644 index 0000000..9bc4724 Binary files /dev/null and b/static/images/wiki/QSV_Bench_Dark_Mode_Enabled.jpg differ diff --git a/static/images/wiki/ToriOnlyFill.png b/static/images/wiki/ToriOnlyFill.png new file mode 100644 index 0000000..2c5e50e Binary files /dev/null and b/static/images/wiki/ToriOnlyFill.png differ diff --git a/static/images/wiki/ToriOnlyFill3602.png b/static/images/wiki/ToriOnlyFill3602.png new file mode 100644 index 0000000..2c5e50e Binary files /dev/null and b/static/images/wiki/ToriOnlyFill3602.png differ diff --git a/static/images/wiki/USB_Swiss_Army_Knife.jpg b/static/images/wiki/USB_Swiss_Army_Knife.jpg new file mode 100644 index 0000000..6a8838e Binary files /dev/null and b/static/images/wiki/USB_Swiss_Army_Knife.jpg differ diff --git a/static/js/wiki-data.js b/static/js/wiki-data.js new file mode 100644 index 0000000..887c443 --- /dev/null +++ b/static/js/wiki-data.js @@ -0,0 +1,1262 @@ +// Hacker Dojo Wiki Data - Ported from Historical MediaWiki Archive +// Integrated with Nexudus Makerspace Platform +window.HACKER_DOJO_WIKI = [ + { + "id": "about", + "raw_name": "About_the_Hacker_Dojo", + "title": "About the Hacker Dojo", + "category": "Overview", + "category_label": "About the Dojo", + "icon": "🏛️", + "read_time": "2 min read", + "words": 407, + "excerpt": "Hacker Dojo Mission Hacker Dojo, a 501(c)(3) non-profit organization founded in 2009, provides space to bring together entrepreneurs, programmers, creators, and other hackers in Mountain View, California. We embrace the term “hacker” in the positive...", + "toc": [ + { + "id": "part-of-hacker-dojo-s-mission-consists-in", + "text": "Part of Hacker Dojo’s mission consists in:", + "level": 2 + }, + { + "id": "quick-rules-recommendations", + "text": "Quick Rules - Recommendations", + "level": 2 + } + ], + "nexudus": null, + "html": "
    \n

    Hacker Dojo Mission

    \n

    Hacker Dojo, a 501(c)(3) non-profit organization founded in 2009, provides space to bring together entrepreneurs, programmers, creators, and other hackers in Mountain View, California. We embrace the term “hacker” in the positive sense as describing someone who likes to understand how things work and produce new creations.\n

    Hacker Dojo's mission is to provide the tech community and other communities in Silicon Valley an affordable place to learn, collaborate and innovate so that anyone from any circumstance and background with an idea can build their dream.\n

    \n

    Part of Hacker Dojo’s mission consists in:

    \n\n

    Quick Rules - Recommendations

    \n\n

    Hacker Dojo History

    \n

    In 2009, several people came together with a similar vision for starting a non-profit community center for geeks. David Weekly had a vision for a community center called \"Hacker Dojo\" where people could teach each other in the art of computer programming (he even had a signed burned into wood in 2002 to capture the idea)! Jeff had been inspired by SuperHappyDevHouse, and wanted a physical manifestation of that spirit. Brian Klug had wanted to lease a space on Castro St. in 2008 for his own hippie vision but was unable to finance the operation along. Like minds started talking and a ridiculous snowball of momentum began.\n

    The Founding Directors and several others (including Dean Mao, Nathan Schmidt, and Zonker) were noted as having a particular passion for the vision. The group (varied in size between 10-30 people) started meeting regularly, usually at PBworks HQ in San Mateo. The mailing list was crucial in keeping the group organized and communicating often. They started looking for spaces, figuring out corporate structure (the infamous LLC vs Corporation question), and eventually deciding between 501(c)(3) and 501(c)(6).\n

    \n\n\n\n
    " + }, + { + "id": "founding-members", + "raw_name": "Founding_Members", + "title": "Founding Members", + "category": "Overview", + "category_label": "Founding Members", + "icon": "⭐", + "read_time": "1 min read", + "words": 94, + "excerpt": "Founding Directors and Members contributed to the Dojo before the doors ever opened. Without them, Hacker Dojo would still just be an idea in David's head! Founding Directors Kitt Hodsden Brian Klug David Weekly Jeff...", + "toc": [], + "nexudus": null, + "html": "

    Founding Directors and Members contributed to the Dojo before the doors ever opened. Without them, Hacker Dojo would still just be an idea in David's head!\n

    \n
    Founding Directors\n
    \n\n
    Founding Members\n
    \n\n\n\n\n
    " + }, + { + "id": "visitors-guide", + "raw_name": "Visitors_Guide", + "title": "Visitors Guide", + "category": "Overview", + "category_label": "Visitors Guide", + "icon": "👋", + "read_time": "2 min read", + "words": 481, + "excerpt": "Hello! Thanks for checking out Hacker Dojo.📍 Hacker Dojo Location & Hours:855 Maude Avenue, Mountain View, CA 94043.Guest & Visitor Hours: 7 days a week, 10:00 AM – 9:00 PM. (Members have 24/7 access).Take a...", + "toc": [ + { + "id": "hello-thanks-for-checking-out-hacker-dojo", + "text": "Hello! Thanks for checking out Hacker Dojo.", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Hello! Thanks for checking out Hacker Dojo.

    📍 Hacker Dojo Location & Hours:
    855 Maude Avenue, Mountain View, CA 94043.
    Guest & Visitor Hours: 7 days a week, 10:00 AM – 9:00 PM. (Members have 24/7 access).
    Take a Tour: We encourage first-time visitors to Book a 30-minute front desk tour!
    \n

    We welcome visitors every day!\n

    We're usually open 7 days a week 10am to 9pm. A donation of $10 is appreciated. We are welcome to enjoy the free wifi for guests. If you'd like access to faster 1 gig internet, we have $20 day passes available on the home page. Day passes do not include hosting event and lab access. As soon as you sign up as a member you'll be provided access control to the space, and you can use the Dojo 24/7.\n


    \nWhat the Dojo's like\n

    The space is about half desks and workbenches, and half social space with couches and chairs for hanging out. We have a break room with some fairly intense coffee enthusiasts who like to roast their own coffee, and an electronics lab stocked with goodies, scopes, power supplies, and a 100w Co2 LaserCutter. \n


    \nEvery day is a little different at Hacker Dojo, so your visit may or may not reflect a typical visit. Come a few times, join as a member, and help us shape our organization!\n


    \nVirtual Tour\nWe have 3 telepresence robots (Thanks to the cool awesome folks at https://ohmnilabs.com) - Mo, Larry and Curly\n

    You are welcome to call into any of the robots if they are charged up and available. Once in you can roam around the dojo and talk to members and guests\n

    Please be mindful that a robot on the charging port will need to back away from the port. You will see the port on the floor facing the camera. The policies apply to the bots as well\n

    Be Excellent to each other!\n

    Mo Bot https://app.ohmnilabs.com/share/whcbbe-ahzewwz-qworsf\n

    Larry Bot https://app.ohmnilabs.com/share/fmtvdl-waccdgv-orrvhd\n

    Curly Bot https://app.ohmnilabs.com/share/qfydoo-dqvuyzf-drcnpu\n


    \nWhen to visit\n

    Afternoons and evenings, around 3PM, is usually our peak time, in terms of numbers of people. We have many events listed at . If you'd prefer a quieter environment, come earlier in the day. Weekends vary greatly. If the weather is nice in Mountain View (...often!) the place might be empty on a Saturday. Or, there could be a mega-event with 150+ people. Check the events schedule!\n


    \nWhat to do\n

    A lot of people hack on their laptops. Some people are focused in their work, and a lot of people welcome discussion! A good technique is to walk around, introduce yourself by name, and ask \"What are you working on?\" Feel free to make yourself at home. Use the kitchen, use the electronics lab, talk to people and enjoy.\n


    \nHacker Dojo has lots of classes and events that are good ice-breakers. On Friday after work you're quite likely to find us mixing drinks and socializing.\n

    \n\n\n\n
    " + }, + { + "id": "main-page", + "raw_name": "Main_Page", + "title": "Welcome to Hacker Dojo Wiki", + "category": "Overview", + "category_label": "Overview & Welcome", + "icon": "🌟", + "read_time": "4 min read", + "words": 886, + "excerpt": "Welcome to Hacker Dojo Wiki! This is the Hacker Dojo wiki and knowledge base. This wiki is public and mostly dedicated to members. Everything you need to know about Hacker Dojo should be in this...", + "toc": [ + { + "id": "visitors-guide", + "text": "Visitors Guide", + "level": 2 + }, + { + "id": "about-the-hacker-dojo", + "text": "About the Hacker Dojo", + "level": 2 + }, + { + "id": "founding-members", + "text": "Founding Members", + "level": 3 + }, + { + "id": "bylaws", + "text": "Bylaws", + "level": 3 + }, + { + "id": "hacker-dojo-membership", + "text": "Hacker Dojo Membership", + "level": 3 + }, + { + "id": "hacker-dojo-policies", + "text": "Hacker Dojo Policies", + "level": 3 + }, + { + "id": "hacker-dojo-visitors", + "text": "Hacker Dojo Visitors", + "level": 3 + }, + { + "id": "facilities", + "text": "Facilities", + "level": 2 + }, + { + "id": "work-space", + "text": "Work Space", + "level": 3 + }, + { + "id": "kitchen-break-room", + "text": "Kitchen/Break Room", + "level": 3 + }, + { + "id": "maker-labs", + "text": "Maker labs", + "level": 3 + }, + { + "id": "wifi-network", + "text": "Wifi & Network", + "level": 2 + }, + { + "id": "hacker-dojo-free", + "text": "Hacker Dojo Free", + "level": 3 + }, + { + "id": "hacker-dojo", + "text": "Hacker Dojo", + "level": 3 + }, + { + "id": "hd-events", + "text": "HD-Events", + "level": 3 + }, + { + "id": "community", + "text": "Community", + "level": 2 + }, + { + "id": "marketing", + "text": "Marketing", + "level": 2 + }, + { + "id": "events", + "text": "Events", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Welcome to Hacker Dojo Wiki!

    \n

    This is the Hacker Dojo wiki and knowledge base. This wiki is public and mostly dedicated to members.\nEverything you need to know about Hacker Dojo should be in this wiki. If you feel that some information is missing, feel free to create an account and add the missing content.\n

    To create an account please send an email to management@hackerdojo.com\n

    \n\n

    Visitors Guide

    \n

    N00Bs Welcome!\n

    \n

    About the Hacker Dojo

    \n

    The Hacker Dojo is a community of engineers, artists, scientists, activists, entrepreneurs and other creative people centered around a co-working and social facility. Feel free to drop by and see for yourself what the Dojo is all about. \n

    \n

    Founding Members

    \n

    These are the special people who contributed to help build this organization.\n

    \n

    Bylaws

    \n

    Governing principles and guidelines for the organization\n

    \n

    Hacker Dojo Membership

    \n

    We're a non-profit, and without the support of our members, we would cease to exist! We currently have three levels of membership which you can sign up for on our website. Our regular membership is just $150 a month for unlimited access to the space.\n

    \n

    Hacker Dojo Policies

    \n

    When you become a member at Hacker Dojo you agree to follow a couple of simple rules.\n

    \n

    Hacker Dojo Visitors

    \n

    Visitors are always welcome to stop by and see the Dojo. We do encourage you to sign up as a member if you find yourself here more than once.\n

    \n

    Facilities

    \n

    For our members' safety, the space is monitored 24/7.\n

    \n

    Work Space

    \n

    Most of the Hacker Dojo consists of an open workspace. It is based on a first-come, first-serve policy. Meaning, if you find an open seat, it is free for you to sit in. Guests and members are allowed to sit in the Main Space, Event Room and Classroom. We encourage members to try sitting in different areas throughout the Dojo, so they can meet and interact with other members or visitors. And we highly discourage members from \"squatting\" or \"setting up shop\" in one area. \n

    If you find the need for a designated space, sign up for a Hive membership. You will receive a dedicated desk and a room restricted with access control, so it is safe to leave your items overnight. \n

    \n

    Kitchen/Break Room

    \n

    This is a shared space. No one likes a filthy kitchen. Clean up after yourself. When you get a cup of coffee, look to see if there are drips all over the counter; if so, get a paper towel and wipe it up.\nPlease be mindful of other food and snacks in the area. If their name is on it, please do not help yourself. Most of the snacks are communal but please understand sharing means contributing as well. \nIf you take snacks or drinks, next time, bring some to share with the community. This is not an open food kitchen.\n

    \n

    Maker labs

    \n

    We have two labs in the space; Laser Room and Electronics Lab.\nThe maker space labs have some serious tools in them. Tools that can cut, drill, chop, mill, etc. You should never use the maker space if you are the only person in the building. Doing so is dangerous because if you have an accident there is no one else available to call for help.\n


    \n

    \n

    Wifi & Network

    \n

    Hacker Dojo is wifi only. No wired access. \n

    We monitor the network and if you connect to one of the wifi networks at Hacker dojo you must agree to our Network policies\nPeer-2-peer traffic on illegal and copyrighted content will result in a cancellation of membership.\n

    We have 3 wifi networks. \n

    \n

    Hacker Dojo Free

    \n

    This wifi is for guests. It is open. Everybody can access it and can use it. The internet speed here is 5/mbps. On par with your local coffee shop for email checking\n

    \n

    Hacker Dojo

    \n

    This wifi is for members and for Day Pass users. You need an active Hacker Dojo account to use it. It is 1 Gig symmetrical \nOnce you sign up, you will receive a welcome email with a personal pin code. You will use this when connecting. Enter your email and pin code one time and the network will remember your device.\n

    \n

    HD-Events

    \n

    This wifi is dedicated to Event attendees. If you come to the dojo to attend an event and need internet access, please ask your event organizer to give you the wifi access code.\nWhen your device is on the network you should see a splash page. enter the wifi event password on this page and should be able to get internet access for the duration of the event.\nif the splash page does not appear please see our page about
    How to troubleshoot wifi issues\n

    \n

    Community

    \n

    This section is dedicated to members, volunteers, and guests looking to engage the community through shared interest, open source projects, and collaboration.
    \n

    Here is our Github
    \nWe have a couple of open source projects on there as well as member-supported stuff.\n

    \n

    Marketing

    \n

    Branding guidelines and logos\n

    \n

    Events

    \n

    Members are able to host events for free.\n

    Most events are free unless it is a private event or otherwise posted. \n

    Please check out our events section for more info.\n

    Hacker Dojo was created out of Bay Area's Original Hackathon, Super Happy Dev House.\n

    This is a documentary short created to tell the story.\nhttps://www.youtube.com/watch?v=YprmMvHaWUM\n


    \n


    \n

    \n
    \n

    For Admins\nHow to wiki for admins\n

    \n\n\n\n
    " + }, + { + "id": "bylaws", + "raw_name": "Bylaws", + "title": "Bylaws of Hacker Dojo", + "category": "Governance", + "category_label": "Corporate Bylaws", + "icon": "⚖️", + "read_time": "33 min read", + "words": 6648, + "excerpt": "Bylaws of Hacker Dojo, Inc.a California Nonprofit Public Benefit Corporation Section 1: Corporate Name1. Corporate Name. The name of this corporation is Hacker Dojo. Section 2: Corporate Office2.Corporate Office. The principal office for the transaction...", + "toc": [ + { + "id": "bylaws-of-hacker-dojo-inc", + "text": "Bylaws of Hacker Dojo, Inc.", + "level": 2 + }, + { + "id": "section-1-corporate-name", + "text": "Section 1: Corporate Name", + "level": 3 + }, + { + "id": "section-2-corporate-office", + "text": "Section 2: Corporate Office", + "level": 3 + }, + { + "id": "section-3-corporate-purpose", + "text": "Section 3: Corporate Purpose", + "level": 3 + }, + { + "id": "section-4-construction-definitions", + "text": "Section 4: Construction; Definitions", + "level": 3 + }, + { + "id": "section-5-irrevocable-dedication-of-assets", + "text": "Section 5: Irrevocable Dedication of Assets", + "level": 3 + }, + { + "id": "section-6-no-members", + "text": "Section 6: No Members", + "level": 3 + }, + { + "id": "section-7-board-of-directors", + "text": "Section 7: Board of Directors", + "level": 3 + }, + { + "id": "section-7-1-general-powers-of-board", + "text": "Section 7: 1 General Powers of Board", + "level": 3 + }, + { + "id": "section-7-2-specific-powers-of-board", + "text": "Section 7: 2 Specific Powers of Board", + "level": 3 + }, + { + "id": "section-7-3-number-term-and-qualifications-of-directors", + "text": "Section 7: 3 Number, Term and Qualifications of Directors", + "level": 3 + }, + { + "id": "section-7-4-interested-persons-as-directors", + "text": "Section 7: 4 Interested Persons as Directors", + "level": 3 + }, + { + "id": "section-7-5-vacancies-on-board", + "text": "Section 7: 5 Vacancies on Board", + "level": 3 + }, + { + "id": "section-7-6-resignation-of-directors", + "text": "Section 7: 6 Resignation of Directors", + "level": 3 + }, + { + "id": "section-7-7-removal-of-directors", + "text": "Section 7: 7 Removal of Directors", + "level": 3 + }, + { + "id": "section-7-8-vacancies-filled-by-board", + "text": "Section 7: 8 Vacancies Filled by Board", + "level": 3 + }, + { + "id": "section-7-9-location-of-board-meetings", + "text": "Section 7: 9 Location of Board Meetings", + "level": 3 + }, + { + "id": "section-7-10-meetings-by-telecommunication", + "text": "Section 7: 10 Meetings by Telecommunication", + "level": 3 + }, + { + "id": "section-7-11-annual-meeting-of-board", + "text": "Section 7: 11 Annual Meeting of Board", + "level": 3 + }, + { + "id": "section-7-12-special-meetings", + "text": "Section 7: 12 Special Meetings", + "level": 3 + }, + { + "id": "section-7-13-notice-of-special-meetings", + "text": "Section 7: 13 Notice of Special Meetings", + "level": 3 + }, + { + "id": "section-7-14-quorum", + "text": "Section 7: 14 Quorum", + "level": 3 + }, + { + "id": "section-7-15-waiver-of-notice", + "text": "Section 7: 15 Waiver of Notice", + "level": 3 + }, + { + "id": "section-7-16-adjournment", + "text": "Section 7: 16 Adjournment", + "level": 3 + }, + { + "id": "section-7-17-notice-of-adjourned-meeting", + "text": "Section 7: 17 Notice of Adjourned Meeting", + "level": 3 + }, + { + "id": "section-7-18-board-action-without-meeting", + "text": "Section 7: 18 Board Action Without Meeting", + "level": 3 + }, + { + "id": "section-7-19-board-committees", + "text": "Section 7: 19 Board Committees", + "level": 3 + }, + { + "id": "section-7-19", + "text": "Section 7: 19", + "level": 3 + }, + { + "id": "section-7-19", + "text": "Section 7: 19", + "level": 3 + }, + { + "id": "section-7-19", + "text": "Section 7: 19", + "level": 3 + }, + { + "id": "section-7-19", + "text": "Section 7: 19", + "level": 3 + }, + { + "id": "section-7-19", + "text": "Section 7: 19", + "level": 3 + }, + { + "id": "section-8-officers", + "text": "Section 8: Officers", + "level": 3 + }, + { + "id": "section-8-1-required-and-other-officers", + "text": "Section 8: 1 Required and Other Officers", + "level": 3 + }, + { + "id": "section-8-2-election-of-officers", + "text": "Section 8: 2 Election of Officers", + "level": 3 + }, + { + "id": "section-8-3-additional-officers", + "text": "Section 8: 3 Additional Officers", + "level": 3 + }, + { + "id": "section-8-4-removal-of-officers", + "text": "Section 8: 4 Removal of Officers", + "level": 3 + }, + { + "id": "section-8-5-resignation-of-officers", + "text": "Section 8: 5 Resignation of Officers", + "level": 3 + }, + { + "id": "section-8-6-vacancies", + "text": "Section 8: 6 Vacancies", + "level": 3 + }, + { + "id": "section-8-7-responsibilities-of-board-chair", + "text": "Section 8: 7 Responsibilities of Board Chair", + "level": 3 + }, + { + "id": "section-8-8-responsibilities-of-president", + "text": "Section 8: 8 Responsibilities of President", + "level": 3 + }, + { + "id": "section-8-9-responsibilities-of-vice-presidents", + "text": "Section 8: 9 Responsibilities of Vice Presidents", + "level": 3 + }, + { + "id": "section-8-10-responsibilities-of-secretary", + "text": "Section 8: 10 Responsibilities of Secretary", + "level": 3 + }, + { + "id": "section-8-11-responsibilities-of-chief-financial-officer", + "text": "Section 8: 11 Responsibilities of Chief Financial Officer", + "level": 3 + }, + { + "id": "section-9-contracts-with-officers-and-directors", + "text": "Section 9: Contracts with Officers and Directors", + "level": 3 + }, + { + "id": "section-10-loans-to-directors-and-officers", + "text": "Section 10: Loans to Directors and Officers", + "level": 3 + }, + { + "id": "section-11-indemnification", + "text": "Section 11: Indemnification", + "level": 3 + }, + { + "id": "section-12-insurance", + "text": "Section 12: Insurance", + "level": 3 + }, + { + "id": "section-13-corporate-records-and-documents", + "text": "Section 13: Corporate Records and Documents", + "level": 3 + }, + { + "id": "section-14-inspection-of-articles-and-bylaws", + "text": "Section 14: Inspection of Articles and Bylaws", + "level": 3 + }, + { + "id": "section-16-fiscal-year-and-annual-report", + "text": "Section 16: Fiscal Year and Annual Report", + "level": 3 + }, + { + "id": "section-17-annual-statement", + "text": "Section 17: Annual Statement", + "level": 3 + }, + { + "id": "section-18-private-foundation-restrictions", + "text": "Section 18: Private Foundation Restrictions", + "level": 3 + }, + { + "id": "section-19-amendment", + "text": "Section 19: Amendment", + "level": 3 + } + ], + "nexudus": null, + "html": "

    Bylaws of Hacker Dojo, Inc.

    a California Nonprofit Public Benefit Corporation\n

    \n

    Section 1: Corporate Name

    1. Corporate Name. The name of this corporation is Hacker Dojo.\n

    Section 2: Corporate Office

    2.Corporate Office. The principal office for the transaction of the activities and affairs of this corporation is located at 855 Maude Avenue, Mountain View, CA 94043. The board of directors may change the location of the principal office. Any such change of location must be noted by the secretary on these bylaws opposite this Section; alternatively, this Section may be amended to state the new location. The board may at any time establish branch or subordinate offices at any place or places where this corporation is qualified to conduct its activities.\n

    Section 3: Corporate Purpose

    3. Corporate Purpose. The specific purpose of this corporation is to promote and encourage technical, scientific and artistic skills and knowledge by providing community centers for hackers and thinkers to meet, discuss, teach, learn and create through individual projects, collaboration and education.\n

    Section 4: Construction; Definitions

    4. Construction; Definitions. Unless the context requires otherwise, the general provisions, rules of construction, and definitions in the California Nonprofit Corporation Law shall govern the construction of these bylaws. Without limiting the generality of the preceding sentence, the masculine gender includes the feminine and neuter, the singular includes the plural, the plural includes the singular, and the term “person” includes both a legal entity and a natural person.\n

    Section 5: Irrevocable Dedication of Assets

    5. Irrevocable Dedication of Assets. This corporation’s assets are irrevocably dedicated to public and charitable purposes. No part of the net earnings, properties, or assets of the corporation, on dissolution or otherwise, shall inure to the benefit of any private person or individual, or to any director or officer of the corporation. On liquidation or dissolution, all properties and assets remaining after payment, or provision for payment, of all debts and liabilities of the corporation shall be distributed to a nonprofit fund, foundation, or corporation that is organized and operated exclusively for charitable purposes and that has established its exempt status under Internal Revenue Code §501(c)(3).\n

    Section 6: No Members

    6. No Members. This corporation shall have no voting members within the meaning of the Nonprofit Corporation Law. The corporation’s board of directors may, in its discretion, admit individuals to one or more classes of nonvoting members; the class or classes shall have such rights and obligations as the board finds appropriate.\n

    Section 7: Board of Directors

    7. Board of Directors.\n

    Section 7: 1 General Powers of Board

    7.1 General Powers of Board. Subject to the provisions and limitations of the California Nonprofit Public Benefit Corporation Law and any other applicable laws, and subject to any limitations of the articles of incorporation or these, the corporation’s activities and affairs shall be managed, and all corporate powers shall be exercised, by or under the direction of the board. The members of the Board of Directors shall have no personal liability for the debts, liabilities or obligations of the corporation by reason of their serving as directors.\n

    Section 7: 2 Specific Powers of Board

    7.2 Specific Powers of Board. Without prejudice to the general powers set forth in Section 7.1 of these bylaws, but subject to the same limitations, the board shall have the power to do the following:\n

    (1) Appoint and remove, at the pleasure of the board, all corporate officers, agents, and employees; prescribe powers and duties for them as are consistent with the law, the articles of incorporation, and these bylaws; fix their compensation; and require from them security for faithful service.\n

    (2) Change the principal office or the principal business office in California from one location to another; cause the corporation to be qualified to conduct its activities in any other state, territory, dependency, or country; conduct its activities in or outside California; and designate a place in or outside California for holding any meeting of members.\n

    (3) Borrow money and incur indebtedness on the corporation’s behalf and cause to be executed and delivered for the corporation’s purposes, in the corporate name, promissory notes, bonds, debentures, deeds of trust, mortgages, pledges, hypothecations, and other evidences of debt and securities.\n

    (4) Determine which persons and entities will receive the financial support of the corporation in furtherance of its charitable purposes.\n

    Section 7: 3 Number, Term and Qualifications of Directors

    7.3 Number, Term and Qualifications of Directors. The board of directors shall consist of at least three (3) but no more than seven (7) directors unless changed by amendment to these bylaws. The initial number of directors shall be five (5); but the number of directors may be changed from time to time, within those limits, by a resolution adopted by the board of directors. At least one director, but no more than three directors, shall be assigned to each of Class 1, Class 2 and Class 3. The term of Class 1 directors shall expire a year prior to the expiration of the term of Class 2 directors, and the term of Class 3 directors shall expire a year after the expiration of the term of Class 2 directors. Directors in each Class shall be elected to a term of three (3) years (provided that, initially, Class 1 directors shall be elected for a term of one (1) year and Class 2 directors shall be elected for a term of two (2) years), but shall continue to serve thereafter until their successors are elected and qualified. There is no limit on the number of terms, consecutive or otherwise, that a director may serve. Directors will serve without compensation; provided that the reasonable, approved expenses of a director may be advanced or reimbursed.\n

    Section 7: 4 Interested Persons as Directors

    7.4 Interested Persons as Directors. No more than 49 percent of the persons serving on the board may be “interested persons.” An interested person is (1) any person compensated by the corporation for services rendered to it within the previous 12 months, whether as a full-time or part-time employee, independent contractor, or otherwise, excluding any reasonable compensation paid to a director as director; and (2) any brother, sister, ancestor, descendant, spouse, brother-in-law, sister-in-law, son- in-law, daughter-in-law, mother-in-law, or father-in-law of such person. However, any violation of this paragraph shall not affect the validity or enforceability of transactions entered into by the corporation.\n

    Section 7: 5 Vacancies on Board

    7.5 Vacancies on Board. A vacancy or vacancies on the board of directors shall occur in the event of (1) the death, removal, resignation or expiration of the term of any director; (2) the declaration by board resolution of a vacancy of the office of a director who has been convicted of a felony or declared of unsound mind by a court order; (3) the removal of a director for fraudulent acts in an action in Superior Court under Corporations Code §5223; or (4) the increase of the authorized number of directors.\n

    Section 7: 6 Resignation of Directors

    7.6 Resignation of Directors. Except as provided below, any director may resign by giving written notice to the chair of the board, if any, or to the president or the secretary of the board. The resignation shall be effective when the notice is given unless it specifies a later time for the resignation to become effective. If a director’s resignation is effective at a later time, the board may elect a successor to take office as of the date when the resignation becomes effective. Except on notice to the California Attorney General, no director may resign if the corporation would be left without a duly elected director or directors.\n

    Section 7: 7 Removal of Directors

    7.7 Removal of Directors. Any director may be removed, with or without cause, by the vote of the majority of the members of the entire board of directors at a special meeting called for that purpose, or at a regular meeting, provided that notice of that meeting and of the removal questions are given as provided in Section 7.13. Any vacancy caused by the removal of a director shall be filled as provided in Section 7.8.\n

    Any director who does not attend three successive board meetings will automatically be removed from the board without board resolution unless:\n

    (A) The director requests a leave of absence for a limited period of time, and the leave is approved by the directors at a regular or special meeting. If such leave is granted, the number of board members will be reduced by one in determining whether a quorum is or is not present;\n

    (B) The director suffers from an illness or disability which prevents him or her from attending meetings and the board by resolution waives the automatic removal procedure of this subsection; or\n

    (C) The board by resolution of the majority of board members agrees to reinstate the director who has missed three meetings.\n

    Any reduction of the authorized number of directors shall not result in any director’s being removed before his or her term of office expires.\n

    Section 7: 8 Vacancies Filled by Board

    7.8 Vacancies Filled by Board. Vacancies on the board may be filled by approval of the board or, if the number of directors then in office is less than a quorum, by (1) the unanimous written consent of the directors then in office, (2) the affirmative vote of a majority of the directors then in office at a meeting held according to notice or waivers of notice complying with Corporations Code §5211, or (3) a sole remaining director.\n

    Section 7: 9 Location of Board Meetings

    7.9 Location of Board Meetings. Meetings of the board shall be held at any place within or outside California that has been designated by resolution of the board or in the notice of the meeting or, if not so designated, at the principal office of the corporation.\n

    Section 7: 10 Meetings by Telecommunication

    7.10 Meetings by Telecommunication. Any board meeting may be held by conference telephone, video screen communication, or other communications equipment. Participation in a meeting under this Section shall constitute presence in person at the meeting if both the following apply:\n

    (1) Each member participating in the meeting can communicate concurrently with all other members.\n

    (2) Each member is provided the means of participating in all matters before the board, including the capacity to propose, or to interpose an objection to, a specific action to be taken by the corporation.\n

    Section 7: 11 Annual Meeting of Board

    7.11 Annual Meeting of Board. Annually on the third Wednesday of February (or such other date as shall be set by resolution of the board) the board shall hold a general meeting for purposes of organization, election or re-election of directors, election or re- election of officers, and transaction of other business. Notice of this meeting is not required. Other regular meetings of the board may be held without notice at such time and place as the board may fix from time to time.\n

    Section 7: 12 Special Meetings

    7.12 Special Meetings. Special meetings of the board for any purpose may be called at any time by the chair of the board, if any, the president or any vice president, the secretary, or any two directors.\n

    Section 7: 13 Notice of Special Meetings

    7.13 Notice of Special Meetings. Notice of the time and place of special meetings shall be given to each director by (1) personal delivery of written notice; (2) first-class mail, postage prepaid; (3) if agreed to in writing by the director receiving the notice, telephone, including a voice messaging system or other system or technology designed to record and communicate messages, or by electronic transmission, either directly to the director or to a person at the director’s office who would reasonably be expected to communicate that notice promptly to the director; (4) facsimile; (5) electronic mail; or (6) other electronic means that preserve a copy of the notice. All such notices shall be given or sent to the director’s address or telephone number as shown on the corporation’s records.\n

    Notices sent by first-class mail shall be deposited in the United States mails at least five (5) business days before the time set for the meeting. Notices given by personal delivery, telephone, or electronic transmission shall be delivered, telephoned, or sent, respectively, at least 24 hours before the time set for the meeting.\n

    The notice shall state the time of the meeting and the place, if the place is other than the corporation’s principal office. The notice need not specify the purpose of the meeting.\n

    Section 7: 14 Quorum

    7.14 Quorum. A majority of the number of directors then in office shall constitute a quorum for the transaction of any business except adjournment. Every action taken or decision made by a majority of the directors present at a duly held meeting at which a quorum is present shall be an act of the board, subject to the more stringent provisions of the California Nonprofit Public Benefit Corporation Law, including, without limitation, those provisions relating to (1) approval of contracts or transactions in which a director has a direct or indirect material financial interest, (2) approval of certain transactions between corporations having common directorships, (3) creation of and appointments to committees of the board, and (4) indemnification of directors. A meeting at which a quorum is initially present may continue to transact business, despite the withdrawal of some directors from that meeting, if any action taken or decision made is approved by at least a majority of the required quorum for that meeting.\n

    Section 7: 15 Waiver of Notice

    7.15 Waiver of Notice. Notice of a meeting need not be given to any director who, either before or after the meeting, signs a waiver of notice, a written consent to the holding of the meeting, or an approval of the minutes of the meeting. The waiver of notice or consent need not specify the purpose of the meeting. All waivers, consents, and approvals shall be filed with the corporate records or made a part of the minutes of the meetings. Notice of a meeting need not be given to any director who attends the meeting and who, before or at the beginning of the meeting, does not protest the lack of notice to him or her.\n

    Section 7: 16 Adjournment

    7.16 Adjournment. A majority of the directors present, whether or not a quorum is present, may adjourn any meeting to another time and place.\n

    Section 7: 17 Notice of Adjourned Meeting

    7.17 Notice of Adjourned Meeting. Notice of the time and place of holding an adjourned meeting need not be given unless the original meeting is adjourned for more than 24 hours. If the original meeting is adjourned for more than 24 hours, notice of any adjournment to another time and place shall be given, before the time of the adjourned meeting, to the directors who were not present at the time of the adjournment.\n

    Section 7: 18 Board Action Without Meeting

    7.18 Board Action Without Meeting. Any action that the board is required or permitted to take may be taken without a meeting if all board members consent in writing to the action; provided, however, that the consent of any director who has a material financial interest in a transaction to which the corporation is a party and who is an “interested director” as defined in Corporations Code §5233 shall not be required for approval of that transaction. Such action by written consent shall have the same force and effect as any other validly approved action of the board. All such consents shall be filed with the minutes of the proceedings of the board.\n

    Section 7: 19 Board Committees

    7.19 Board Committees. The board, by resolution adopted by a majority of the directors then in office, may create one or more committees, each consisting of two or more directors and no one who is not a director, to serve at the pleasure of the board. Appointments to committees of the board shall be by majority vote of the directors then in office. The board may appoint one or more directors as alternate members of any such committee, who may replace any absent member at any meeting. Any such committee shall have all the authority of the board, to the extent provided in the board resolution, except that no committee may do the following:\n

    (1) Take any final action on any matter that, under the California Nonprofit Public Benefit Corporation Law, requires approval of a majority of the directors;\n

    (2) Fill vacancies on the board or any committee of the board;\n

    (3) Fix compensation of the directors for serving on the board or on any committee;\n

    (4) Amend or repeal bylaws or adopt new articles of incorporation or bylaws;\n

    (5) Amend or repeal any resolution of the board that by its express terms is not so amendable or repealable;\n

    (6) Create any other committees of the board or appoint the members of committees of the board;\n

    (7) Approve any contract or transaction to which the corporation is a party and in which one or more of its directors has a material financial interest, except as special approval is provided for in Corporations Code §5233(d)(3).\n

    Section 7: 19

    7.19.a. Audit Committee. The corporation may establish an audit committee consisting of at least two directors and may include nonvoting advisors. Directors who are employees or officers of the corporation or who receive, directly or indirectly, any consulting, advisory, or other compensatory fees from the corporation (other than for service as director) may not serve on the audit committee. The audit committee shall perform the duties and adhere to the guidelines set forth in the corporation’s audit committee charter as amended from time to time by the board. Such duties include, but are not limited to:\n

    (1) Assisting the board in choosing an independent auditor and recommending termination of the auditor, if necessary;\n

    (2) Negotiating the auditor’s compensation;\n

    (3) Conferring with the auditor regarding the corporation’s financial affairs; and\n

    (4) Reviewing and accepting or rejecting the audit.\n

    Members of the audit committee shall not receive compensation for their service on the audit committee. If the corporation has a finance committee, a majority of the members of the audit committee may not concurrently serve as members of the finance committee, and the chair of the audit committee may not serve on the finance committee.\n

    Section 7: 19

    7.19.b. Compensation Committee. If the corporation has officers and employees who are compensated for their service to the corporation, the corporation may establish a compensation committee consisting of at least three directors and no one who is not a director. Directors who are also employees of the corporation may not serve on the compensation committee. Pursuant to Government Code §12586(g) and the applicable provisions of federal law, the board, or, if one has been established, compensation committee shall review the compensation of the chief executive officer and the chief financial officer, and such other officers of the corporation the compensation committee determines appropriate, annually and whenever a modification in compensation is proposed. The review shall include an evaluation of the performance of the officers and an analysis of appropriate comparability data. Based on its review, the compensation committee shall recommend just and reasonable compensation amounts for the officers to the board. At the request of the president or the board, the compensation committee shall review any issue involving staff compensation and benefits, including but not limited to, housing, health, and retirement plans.\n

    Section 7: 19

    7.19.c. Executive Committee. Pursuant to Section 7.19 of these bylaws, the board may appoint two or more directors of the corporation to serve as the executive committee of the board. The executive committee, unless limited by a resolution of the board, shall have and may exercise all the authority of the board in the management of the business and affairs of the corporation between meetings of the board; provided, however, that the executive committee shall not have the authority of the board in reference to those matters enumerated in Section 7.19. All actions of the executive committee shall be reported to and ratified by the full board at the next duly scheduled board meeting.\n

    Section 7: 19

    7.19.d. Investment Committee. This corporation may establish an investment committee comprised of not less than three directors. The committee shall act with the care, skill, prudence, and diligence under the circumstances then prevailing that a prudent person acting in a like capacity and familiar with these matters would use in the conduct of an enterprise of like character and with like aims to accomplish the purposes of the institution. Individual investments shall be considered as part of an overall investment strategy. The committee shall consider present and future financial requirements, expected total return, general economic conditions, the appropriate level of risk, appropriate levels of income, growth and long-term net appreciation, and the probable safety of the funds. The committee may retain professional money managers, and shall develop an investment policy that shall be reconsidered at least annually, in light of the changing needs of the corporation, economic conditions, and any other factors that may affect the corporation’s tolerance of risk and need for income. The committee may recommend the retention of property contributed by a donor (whether or not it produces income), and a donor’s request should be a factor in making the determination of whether to sell a particular asset contributed by a donor.\n

    Section 7: 19

    7.19.e. Committee Meetings. Meetings and actions of committees of the board shall be governed by, held, and taken under the provisions of these bylaws concerning meetings and other board actions, except that the time for general meetings of board committees and the calling of special meetings of board committees may be set either by board resolution or, if none, by resolution of the committee. Minutes of each meeting shall be kept and shall be filed with the corporate records. The board may adopt rules for the governance of any committee as long as the rules are consistent with these bylaws. If the board has not adopted rules, the committee may do so.\n

    Section 8: Officers

    8. Officers.\n

    Section 8: 1 Required and Other Officers

    8.1 Required and Other Officers. The officers of this corporation shall be a president, a secretary, and a chief financial officer. The corporation, at the board’s discretion, may also have a chair of the board, one or more vice presidents, one or more assistant secretaries, one or more assistant treasurers, and such other officers as may be elected under section 8.2 of these bylaws or appointed under Section 8.3 of these bylaws. Any number of offices may be held by the same person, except that neither the secretary nor the chief financial officer may serve concurrently as either the president or the chair of the board. The compensation of the officers shall be fixed by the Board of Directors, and a director serving as an officer may be compensated for his or her services as an officer. The compensation of officers must not exceed a reasonable amount and may be paid only for services actually performed.\n

    Section 8: 2 Election of Officers

    8.2 Election of Officers. The officers of this corporation, except any appointed under Section 8.3 of these bylaws, shall be chosen by the board and shall serve at the pleasure of the board, subject to the rights of any officer under any employment contract.\n

    Section 8: 3 Additional Officers

    8.3 Additional Officers. The board may appoint and authorize the chair of the board, the president, or another officer to appoint any other officers that the corporation may require. Each appointed officer shall have the title and authority, hold office for the period, and perform the duties specified in the bylaws or established by the board.\n

    Section 8: 4 Removal of Officers

    8.4 Removal of Officers. Without prejudice to the rights of any officer under an employment contract, the board may remove any officer with or without cause. An officer who was not chosen by the board may be removed by any other officer on whom the board confers the power of removal.\n

    Section 8: 5 Resignation of Officers

    8.5 Resignation of Officers. Any officer may resign at any time by giving written notice to the board. The resignation shall take effect on the date the notice is received or at any later time specified in the notice. Unless otherwise specified in the notice, the resignation need not be accepted to be effective. Any resignation shall be without prejudice to any rights of the corporation under any contract to which the officer is a party.\n

    Section 8: 6 Vacancies

    8.6 Vacancies. A vacancy in any office because of death, resignation, removal, disqualification, or any other cause shall be filled in the manner prescribed in these bylaws for normal appointments to that office. However, vacancies need not be filled on an annual basis.\n

    Section 8: 7 Responsibilities of Board Chair

    8.7 Responsibilities of Board Chair. If a chair of the board of directors is elected, he or she shall preside at board meetings and shall exercise and perform such other powers and duties as the board may assign from time to time. If no other person is elected by the board as president, the chair of the board shall also be the chief executive officer and shall have the powers and duties of the president of the corporation set forth in these bylaws.\n

    Section 8: 8 Responsibilities of President

    8.8 Responsibilities of President. Subject to such supervisory powers as the board may give to the chair of the board, if any, and subject to the control of the board, the president shall be the chief executive officer and general manager of the corporation and shall supervise, direct, and control the corporation’s activities, affairs, and officers. The president, in the absence of the chair of the board, or if none, shall preside at all board meetings. The president shall have such other powers and duties as the board or the bylaws may require.\n

    Section 8: 9 Responsibilities of Vice Presidents

    8.9 Responsibilities of Vice Presidents. If the president is absent or disabled, the vice presidents, if any, in order of their rank as fixed by the board, or, if not ranked, a vice president designated by the board, shall perform all duties of the president. When so acting, a vice president shall have all powers of and be subject to all restrictions on the president. The vice presidents shall have such other powers and duties as the board or the bylaws may require.\n

    Section 8: 10 Responsibilities of Secretary

    8.10 Responsibilities of Secretary. The secretary shall keep or cause to be kept, at the corporation’s principal office or such other place as the board may direct, a book of minutes of all meetings, proceedings, and actions of the board, of committees of the board, and of members’ meetings. The minutes of meetings shall include the time and place that the meeting was held; whether the meeting was annual, general, or special, and, if special, how authorized; the notice given; the names of persons present at board and committee meetings; and the number of members present or represented at members’ meetings.\n

    The secretary shall keep or cause to be kept, at the principal California office, a copy of the articles of incorporation and bylaws, as amended to date.\n

    The secretary shall keep or cause to be kept, at the corporation’s principal office or at a place determined by resolution of the board, a record of the corporation’s members, showing each member’s name, address, and class of membership.\n

    The secretary shall give, or cause to be given, notice of all meetings of members, of the board, and of committees of the board that these bylaws require to be given. The secretary shall keep the corporate seal, if any, in safe custody and shall have such other powers and perform such other duties as the board or the bylaws may require.\n

    Section 8: 11 Responsibilities of Chief Financial Officer

    8.11 Responsibilities of Chief Financial Officer. The chief financial officer (who, in absence of a person separately elected as such, shall be the treasurer of the corporation) shall keep and maintain, or cause to be kept and maintained, adequate and correct books and accounts of the corporation’s properties and transactions. The chief financial officer shall send or cause to be given to the directors such financial statements and reports as are required to be given by law, by these bylaws, or by the board. The books of account shall be open to inspection by any director at all reasonable times.\n

    The chief financial officer shall (1) deposit, or cause to be deposited, all money and other valuables in the name and to the credit of the corporation with such depositories as the board may designate; (2) disburse the corporation’s funds as the board may order; (3) render to the president, chair of the board, if any, and the board, when requested, an account of all transactions as chief financial officer and of the financial condition of the corporation; and (4) have such other powers and perform such other duties as the board or the bylaws may require.\n

    If required by the board, the chief financial officer shall give the corporation a bond in the amount and with the surety or sureties specified by the board for faithful performance of the duties of the office and for restoration to the corporation of all of its books, papers, vouchers, money, and other property of every kind in the possession or under the control of the chief financial officer on his or her death, resignation, retirement, or removal from office.\n

    Section 9: Contracts with Officers and Directors

    9. Contracts with Officers and Directors. No officer or director of this corporation nor any other corporation, firm, association, or other entity in which one or more of this corporation’s officers or directors are officers or directors or have a material financial interest, shall be interested, directly or indirectly, in any contract or transaction with this corporation unless (1) the material facts regarding that officer’s or director’s financial interest in such contract or transaction or regarding such common directorship, officership, or financial interest are fully disclosed in good faith and noted in the minutes, or are known to all members of the board prior to the board’s consideration of such contract or transaction; (2) such contract or transaction is authorized in good faith by a majority of the board by a vote sufficient for that purpose without counting the votes of the interested directors; (3) before authorizing or approving the transaction, the board considers and in good faith decides after reasonable investigation that the corporation could not obtain a more advantageous arrangement with reasonable effort under the circumstances; and (4) the corporation for its own benefit enters into the transaction, which is fair and reasonable to the corporation at the time the transaction is entered into.\n

    This Section does not apply to a transaction that is part of an educational or charitable program of this corporation if it (1) is approved or authorized by the corporation in good faith and without unjustified favoritism and (2) results in a benefit to one or more directors or their families because they are in the class of persons intended to be benefited by the educational or charitable program of this corporation.\n

    Section 10: Loans to Directors and Officers

    10. Loans to Directors and Officers. This corporation shall not lend any money or property to or guarantee the obligation of any director or officer without the approval of the California Attorney General, provided, however, that the corporation may advance money to a director or officer of the corporation for expenses reasonably anticipated to be incurred in the performance of his or her duties if that director or officer would be entitled to reimbursement for such expenses by the corporation.\n

    Section 11: Indemnification

    11. Indemnification. To the fullest extent permitted by law, this corporation shall indemnify its directors and officers, and may indemnify employees and other persons described in Corporations Code §5238(a), including persons formerly occupying any such positions, against all expenses, judgments, fines, settlements, and other amounts actually and reasonably incurred by them in connection with any “proceeding,” as that term is used in that section, and including an action by or in the right of the corporation, by reason of the fact that the person is or was a person described in that section. “Expenses,” as used in this bylaw, shall have the same meaning as in that section of the Corporations Code.\n

    On written request to the board by any person seeking indemnification under Corporations Code §5238(b) or §5238(c) the board shall promptly decide under Corporations Code §5238(e) whether the applicable standard of conduct set forth in Corporations Code §5238(b) or §5238(c) has been met and, if so, the board shall authorize indemnification.\n

    To the fullest extent permitted by law and except as otherwise determined by the board in a specific instance, expenses incurred by a person seeking indemnification in defending any proceeding covered by those Sections shall be advanced by the corporation before final disposition of the proceeding, on receipt by the corporation of an undertaking by or on behalf of that person that the advance will be repaid unless it is ultimately found that the person is entitled to be indemnified by the corporation for those expenses.\n

    Section 12: Insurance

    12. Insurance. This corporation shall have the right, and shall use its best efforts, to purchase and maintain insurance to the full extent permitted by law on behalf of its officers, directors, employees, and other agents, to cover any liability asserted against or incurred by any officer, director, employee, or agent in such capacity or arising from the officer’s, director’s, employee’s, or agent’s status as such, whether or not the corporation could indemnify such person under Corporations Code §5237.\n

    Section 13: Corporate Records and Documents

    13. Corporate Records and Documents. This corporation shall keep the following: (1) Adequate and correct books and records of account;\n

    (2) Minutes of the proceedings of its members, board, and committees of the board; and\n

    (3) Copies of all tax returns and governmental filings (which, to the extent and in the manner required by law, shall be available for public inspection).\n

    The minutes and other books and records shall be kept either in written form or in any other form capable of being converted into clearly legible tangible form or in any combination of the two.\n

    Contracts and other documents shall be executed on behalf of the corporation by the chief executive officer or chief financial officer and by the secretary or such other officer or officers as the Board of Directors may designate by resolution. Such officers shall execute only such contracts and other documents as have been approved by the Board of Directors or as are within powers that the Board of Directors has specifically delegated by resolution to such officers.\n

    Section 14: Inspection of Articles and Bylaws

    14. Inspection of Articles and Bylaws. This corporation shall keep at its principal California office the original or a copy of the articles of incorporation and bylaws, as amended to the current date, that shall be open to inspection by the directors at all reasonable times during office hours. If the corporation has no business office in California, the secretary shall, on the written request of any director, furnish to that director a copy of the articles of incorporation and bylaws, as amended to the current date.\n

    15. Directors’ Inspection Rights. Every director shall have the absolute right at any reasonable time to inspect the corporation’s books, records, and documents of every kind, and to inspect the physical properties of the corporation. The inspection may be made in person or by the director’s agent or attorney. The right of inspection includes the right to copy and make extracts of books, records, and documents of every kind.\n

    Section 16: Fiscal Year and Annual Report

    16. Fiscal Year and Annual Report. The fiscal year of the corporation shall be the calendar year.\n

    The board shall cause an annual report to be sent to the directors within 120 days after the end of the corporation’s fiscal year. That report shall contain the following information, in appropriate detail:\n

    (1) The assets and liabilities, including the trust funds, of the corporation as of the end of the fiscal year;\n

    (2) The principal changes in assets and liabilities, including trust funds;\n

    (3) The corporation’s revenue or receipts, both unrestricted and restricted to particular purposes;\n

    (4) The corporation’s expenses or disbursements for both general and restricted purposes; and\n

    (5) An independent accountants’ report or, if none, the certificate of an authorized officer of the corporation that such statements were prepared without audit from the corporation’s books and records.\n

    This requirement of an annual report shall not apply if the corporation receives less than $25,000 in gross receipts during the fiscal year, provided, however, that the information specified above for inclusion in an annual report must be furnished annually to any director who requests it in writing. If the board approves, the corporation may send the report and any accompanying material sent pursuant to this section by electronic transmission.\n

    Section 17: Annual Statement

    17. Annual Statement. As part of the annual report to all members, or as a separate document if no annual report is issued, the corporation shall, within 120 days after the end of the corporation’s fiscal year, annually prepare and mail, deliver, or send by electronic transmission to each director a statement of any transaction or indemnification of the following kind:\n

    (1) Any transaction (a) in which the corporation, or its parent or subsidiary, was a party, (b) in which an “interested person” had a direct or indirect material financial interest, and (c) that involved more than $50,000 or was one of several transactions with the same interested person involving, in the aggregate, more than $50,000. For this purpose, an “interested person” is either\n

    (i) Any director or officer of the corporation, its parent, or subsidiary (but mere common directorship shall not be considered such an interest); or\n

    (ii) Any holder of more than 10 percent of the voting power of the corporation, its parent, or its subsidiary.\n

    The statement shall include a brief description of the transaction, the names of interested persons involved, their relationship to the corporation, the nature of their interest in the transaction, and, if practicable, the amount of that interest, provided that if the transaction was with a partnership in which the interested person is a partner, only the interest of the partnership need be stated.\n

    (2) Any indemnifications or advances aggregating more than $10,000 paid during the fiscal year to any officer or director of the corporation under Section 11 of these bylaws.\n

    Section 18: Private Foundation Restrictions

    18. Private Foundation Restrictions. If this corporation is a private foundation, within the meaning of Internal Revenue Code §509, this corporation shall distribute its income for each taxable year at such time and in such manner as not to become subject to the tax on undistributed income imposed by Internal Revenue Code §4942, shall not engage in any act of self-dealing as defined in Internal Revenue Code §4941(d), shall not retain any excess business holdings as defined in Internal Revenue Code §4943(c), shall not make any investments in a manner as to subject it to tax under Internal Revenue Code §4944, and shall not make any taxable expenditures as defined in Internal Revenue Code §4945(d).\n

    Section 19: Amendment

    19. Amendment. These bylaws may be altered, amended, restated and repealed, and new bylaws adopted, by the vote of a majority of the directors then in office.\n


    \n

    CERTIFICATE OF SECRETARY\n

    I certify that I am the duly elected and acting Secretary of Hacker Dojo, a California nonprofit public benefit corporation; that these bylaws, consisting of 16 pages, are the bylaws of this corporation as adopted by the Board of Directors on December 21st, 2021; and that these bylaws have not been amended or modified since that date.\n

    Executed on Dec 21, 2022, at Mountain View, California.\nDavid E. Weekly, Secretary\n

    \n\n\n\n
    " + }, + { + "id": "harassment-policy", + "raw_name": "Harassment_Policy", + "title": "Code of Conduct & Harassment Policy", + "category": "Governance", + "category_label": "Harassment Policy", + "icon": "🛡️", + "read_time": "6 min read", + "words": 1139, + "excerpt": "Harassment Policy Hacker Dojo Harassment Policy Hacker Dojo is committed to providing a safe and welcoming place for everyone to meet and hack; each one of us, including staff, members, and visitors, are responsible for...", + "toc": [ + { + "id": "what-is-harassment", + "text": "What is Harassment?", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Harassment Policy\nHacker Dojo Harassment Policy\n

    Hacker Dojo is committed to providing a safe and welcoming place for everyone to meet and hack; each one of us, including staff, members, and visitors, are responsible for creating a respectful environment, free of harassment, intimidation, bias, and unlawful discrimination. \n

    Hacker Dojo does not tolerate any behavior that (i) disrupts or interferes with another person's rightful use of the Dojo or (ii) creates an intimidating, offensive, or hostile environment. To that end, the Board of Directors of Hacker Dojo (the “Board”) has created this policy to help us all comply with the law and maintain a safe, positive work environment.\n

    This policy protects everyone who comes to the Dojo and applies regardless of whether an employee, member, or visitor is engaging in harassing conduct. If you witness or experience behavior that you believe to be harassment, you should report it to a staff member or to the Ombudsperson (as detailed below). Know that if you make a report of harassment in good faith, you will be protected by Hacker Dojo's Non-Retaliation Policy (also detailed below). The Dojo will comprehensively investigate any conduct that is alleged to be harassing, and if it determines that a violation of this policy has occurred, we will take appropriate actions to protect against future violations. \n

    What is Harassment?

    Behavior that targets an individual and repeatedly makes them feel unsafe or unwelcome specifically because of their age, gender, sex, orientation, race, nationality, origin, or religion may be a violation of that person's civil rights and it may violate this harassment policy. California law defines harassment to include abuse or threats of abuse, stalking, sexual assault, unwanted sexual solicitation or demands for sexual compliance. In particular, sexual harassment is defined as unwelcome verbal, visual, non-verbal or physical conduct of a sexual nature or based on someone’s sex that is severe or pervasive and affects working conditions or creates a hostile work environment. Harassing conduct could include sexual pranks, grabbing or touching of a sexual nature, or posting demeaning or offensive materials. Both men and women can be the victims of harassment. \n

    However, not all offensive conduct is harassment; a person's actions must be severe and continuous enough to create a hostile environment. General conflicts (such as calling someone a “jerk”), most one-time incidents (such as a single offensive remark or joke), friendly physical gestures (such as a pat on the back), and a staff member's right to manage a difficult or emergent situation (such as escorting a disruptive person off the premises) are generally not considered harassment under the law and this policy. \n

    What Should I do if I Experience or Witness Harassment?\nIf you experience or witness behavior that you think is harassing, you should first clearly inform the harasser that his or her conduct is offensive and unwelcome and request that the behavior stop. If the behavior continues, you should immediately bring the matter to the attention of any staff member who is present on the scene. If the staff member is involved in the harassing activity or is otherwise unavailable, the violation should be immediately reported to the Ombudsperson, who can be reached at ombuds((at)) hackerdojo.com. If the Ombudsperson is unavailable or involved in the harassing activity, you may also reach out to any member of the Board at management@hackerdojo.com.\n

    If you hear of harassment second-hand, please encourage the affected individual to contact the Ombudsperson to report the incident.\nAnd, of course, if you witness or experience conduct at the Dojo that is criminal or presents an imminent physical danger to any person, you should immediately call 911, cooperate with any responding officer, and request that he or she make a detailed report of the incident.\nWho is an Ombudsperson?\nAn ombudsperson is a volunteer, non-staff position selected by the Board of Directors to serve as a trusted first and primary point of contact for staff, members and visitors. The Board has appointed a lawyer as the Ombudsperson, and he/she can be reached at ombuds ((at)) hackerdojo.com.\nThe Ombudsperson's duty is to accurately and compassionately field complaints from staff, members, and visitors concerning harassment and to ensure that these complaints are timely evaluated and acted upon to secure the safety of those at the Dojo. \n

    I've Made a Report; What Happens Next?\n

    Once you have made a report, Hacker Dojo will conduct an investigation. While we may request your cooperation during the investigation, we recommend that you do not attempt to independently investigate or resolve any alleged harassment and that you treat the process as confidential. If you report a matter without anonymity, you will be provided appropriate information regarding its final resolution, respecting any confidentiality and legal restraints that may limit what information you can receive. \nIf Hacker Dojo determines that a violation of this policy has occurred, it will take appropriate steps to protect against future violations, which may include termination of the violator's employment or membership rights with Hacker Dojo or banning the violator from the premises.\nYour Report is Treated Confidentially\n

    In reporting any matter, your identity will be kept confidential to the greatest extent possible under the circumstances; we will only share the information necessary to conduct a thorough and appropriate investigation. You also have the option of requesting that your report be handled anonymously, but understand that anonymous reporting may affect or impede our ability to thoroughly investigate your complaint. \nOther than reporting the suspected violation, you should treat the matter as confidential and not discuss it with anyone outside of the investigative process. We respect the privacy of all persons involved in the investigation and expect you to do the same. \n

    Our Non-Retaliation Policy\n

    Hacker Dojo does not retaliate or tolerate retaliation against any person who raises a question or concern; who reports suspected incidents of harassment; or who participates or cooperates in any investigation related to such claim. Our commitment to non-retaliation is a cornerstone of this policy. It assures you that in posing any question, raising any concern, reporting misconduct, or cooperating in any investigation, you will not suffer any negative consequences for doing so—period. Anyone who violates this policy is subject to disciplinary consequences, up to or including termination of employment, revocation of membership, or banning the violator from the premises. \n

    In raising any question or concern, reporting misconduct or cooperating with any investigation, you must act in good faith. This does not mean that you need to be right, nor does it mean that your question or concern must have substantial facts to support it. It requires only that the information that you are providing not be fabricated or presented in an intentionally misleading manner.\n

    What if I still have questions?\nIf you have any questions or concerns regarding this policy, you can reach out to the Ombudsperson at management@hackerdojo.com or talk to any staff member.\n

    \n\n\n\n
    " + }, + { + "id": "sign-in", + "raw_name": "Sign_In", + "title": "Daily Sign-In & Space Policies", + "category": "Governance", + "category_label": "Sign-In Policy", + "icon": "📝", + "read_time": "8 min read", + "words": 1631, + "excerpt": "POLICY \"DRAFT\" AS OF 2024-04-18 SIGN-IN ● All members and guests must sign in when they arrive at the Dojo each day. Those that do not sign in or do not accept our policies may...", + "toc": [ + { + "id": "facilities", + "text": "Facilities", + "level": 2 + }, + { + "id": "membership", + "text": "Membership", + "level": 2 + }, + { + "id": "visitors-drop-ins", + "text": "Visitors/Drop-Ins", + "level": 2 + } + ], + "nexudus": { + "title": "Member Sign-In / Nexudus Passport", + "desc": "Check in using the Nexudus Passport app or our front desk kiosk every time you arrive at the Dojo.", + "url": "https://hackerdojo.spaces.nexudus.com/login", + "badge": "Daily Check-in", + "btn_text": "📲 Nexudus Passport Portal" + }, + "html": "

    POLICY \"DRAFT\" AS OF 2024-04-18\n

    SIGN-IN\n● All members and guests must sign in when they arrive at the Dojo each day. Those that do not sign in or do not accept our policies may not stay.\n

    tldr;\nWhen there’s only one thing to remember ________ (Place on badge)\nSpace is the responsibility of Members, supported by everyone\nGuest/Office hours 10AM - 9PM daily; open as possible for Members\n

    \n\n

    Facilities

    ● Guest/Business hours. 10 AM - 9 PM 7 days a week.\n

    ● 100% Communal. You may not store personal belongings. Any equipment left at the DOJO is done at your own risk and may be used by others. Donated or loaned items may be damaged or removed, and the DOJO is not liable.\n

    ● Help secure the Dojo. Please help keep the Dojo secure outside of business hours by making sure you keep the doors closed. No propping doors open and no tailgating.\n

    ● Sleeping. No sleeping is allowed at Hacker Dojo unless it is done in conjunction with an approved event.\n

    ● Keep the place nice. Please clean up any mess you make. We have cleaning supplies in the kitchen.\n

    ● Animals. Pets who are friendly or potty trained are permitted indoors at Hacker Dojo. Service animals as required by ADA or other applicable laws are allowed. All other animals and nonhuman species must be kept outdoors. Hacker Dojo will not be held responsible for any incidents involving pets.\n

    ● Clothes and shoes must be worn at all times in the facility.\n

    ● Breaking Things. If you break parts of the Dojo, you are financially responsible for replacing them. If you notice anything broken, please report to the executive director.\n

    ● Hold Harmless. Visitors, members, and other participants at Hacker Dojo hereby release, discharge, and agree to hold harmless the Hacker Dojo and its directors, members, and volunteers from and against any liability as a result of any harm, damage, the loss suffered to said visitors, their work, equipment used, personal property or personal injury suffered during the participation or attendance at Hacker Dojo.\n

    ● Dangerous and otherwise awesome science. No science requiring a fume hood, pathogen-related research, or science where food is stored for eating. Please always be considerate of the safety of other people at the Dojo.\n

    ● Parking. The Dojo is not a campground nor a car storage facility. No vehicle may remain in the Dojo parking lot for more than 48 hours or it is liable to be towed. No sleeping in vehicles is allowed.\n

    ● Access points / Wifi hotspots. To avoid disturbing the Hacker Dojo wifi network, operating routers, personal access points, or creating wifi hotspots is not permitted without prior approval from staff.\n

    ● By attending our organization's events or co-working at Hacker Dojo or it's premise, individuals implicitly agree to allow the organization to use event photos for promotional purposes. These photos may be used in marketing materials, social media, website content, and other promotional channels to highlight the success and impact of our events and space. We will ensure the use of these photos aligns with our organization's values and respects the privacy rights of individuals involved.\nMEMBERSHIP\n


    \nThis Section was struck?\n

    Membership

    ● Digital Keys. Members get a digital key to the Dojo immediately after becoming a member.\n


    \n

    ● Accounts. Accounts are associated with an individual person. Sharing of membership/login is not allowed.\n


    \n

    ● Refunds. There are no refunds or prorated credit for unused time during a billing cycle. It is the responsibility of the member to pause their membership before their renewal date.\n

    /End of ?Strike\n

    Visitors/Drop-Ins

    ● Guests are either non-members or event attendees.\n

    ● Drop-in Privileges. Guests do not get accounts, a right to attend events for free, access to the members’ wifi, or voting rights.\n

    ● Children. It is okay to bring children to the Dojo, so long as you assume full responsibility for them and ensure they don’t detract from members’ experience of the Dojo.\n

    ● Not a Public Facility. Non-members are guests of the Dojo and can be asked to leave at any time without a needed reason.\n

    ● Non-members are only allowed in the Dojo between the hours of 10 AM – 9 PM unless accompanied by a member or are attending an event.\n

    ● If you are working out of the Dojo for more than 2 days, you are encouraged to signup for a membership.\n

    \n\n

    EVENTS, HACKER DOJO VISION AND MISSION\n

    Hacker Dojo is a non-profit community center, co-working space, and hackerspace based in Mountain View, California. One of the primary uses of Hacker Dojo is hosting Events. Part of Hacker Dojo’s mission consists of:\n

    ● Be Excellent To One Another\n

    ● Providing the tech community and other communities in Silicon Valley an affordable place to learn, collaborate and innovate so that anyone from any circumstance and background with an idea can build their dream.\n

    ● Spreading entrepreneurial vision.\n

    ● Nurturing disruption and innovation.\n

    ● Being a gathering space for technology leaders and contributors.\n

    ● Providing educational, collaborative, or social endeavors which enable communities to create, learn, and teach each other.\n

    ● Be flexible.\n

    ● Be excellent to each other.\n

    ● A Clean dojo is a great dojo.\n

    ● Offer to help before seeking help.\n

    ● Introduce yourself to three people if it is your first day here.\n

    ● Check out other events if this is your first time here.\n

    ● Spread the word about Hacker Dojo on social platforms.\n

    Social networks. Twitter: @HackerDojo, Facebook: @hackerdojo, Instagram @hackerdojo, Google Maps, Yelp.\n

    \n\n

    RESPECT PERSONAL BOUNDARIES\nBehaviors not welcome at Hacker Dojo, including but not limited to:\n

    HARASSMENT & INTRUSION\n● STARING OR LEERING: Observing someone that is perceived in a manner to be sexually intrusive, intimidating, or causing discomfort.\n

    ● MARGINALIZING GESTURES: Making sexual gestures or using other body language that is inappropriate in any setting.\n

    ● UNSOLICITED ADVANCES: Repeatedly asking someone out or for personal contact information.\n

    UNETHICAL INTERACTIONS\n● PROVOCATIVE ACTIONS: Deliberately inciting discomfort or unnecessary confrontations.\n

    ● MONOPOLIZING INTERACTIONS: Disrupting and dominating interactions, inhibiting others' contributions.\n

    ● COERCIVE CONDUCT: Forcing unjustified demands or imposing opinions on others.\n

    ● RELENTLESS PRESSURE: Constantly attempting to persuade or offer unsolicited advice.\n

    ● VERBAL INTIMIDATION: Employing threatening language to instill discomfort.\n

    ● PHYSICAL INTIMIDATION: Using threatening body language or an aggressive stance to instill fear or discomfort.\n

    INAPPROPRIATE COMMUNICATIONS\n● INAPPROPRIATE COMMENTS: Making sexual or non-sexual comments, jokes, or innuendos about someone's appearance, attire, or otherwise directly to, or in any other setting.\n

    ● DISRESPECTFUL STATEMENTS: Engaging in belittling remarks or disparaging humor of others.\n

    ● DISPROPORTIONATE CRITICISM: Subjecting a person to excessive criticism or scrutiny.\n

    ● IGNORING CONTRIBUTIONS: Purposely overlooking, undervaluing, or taking credit for the ideas or contributions of others.\n

    ● INVASIVE PERSONAL INTERACTIONS: Probing forcefully into someone's personal life, history, or private matters.\n

    ● DIGITAL MISCONDUCT: Sending, showing, or endorsing derogatory, offensive, or sexual messages, emails, images, videos, or symbols.\n

    DISCRIMINATORY TREATMENT\n● NON-VERBAL MARGINALIZATION: Using body language, gestures, or facial expressions that show disrespect or disdain.\n

    ● SPREADING RUMORS OR GOSSIP: Circulating harmful or false information about anyone or group of people.\n

    ● STEREOTYPING & ASSUMPTIONS: Making assumptions or generalizations about any person or group of people based on intrinsic or acquired attributes.\n

    ● BIASED TREATMENT & ISOLATION: Unfairly treating and excluding anyone from discussions, events, or group activities based on intrinsic or acquired attributes.\n

    ● DENYING OPPORTUNITIES: Restricting access to resources or opportunities to some people based on intrinsic or acquired characteristics, rather than rules or policies.\n

    \n\n

    TYPE OF GROUPS: Hacker Dojo considers discriminatory treatment of the following groupings against our ethos.\n

    Identity-Based Discrimination:\n● Race or ethnicity\n● Nationality or immigration status\n● Indigenous or tribal affiliation\n● Social classes (such as caste)\n

    Gender and Sexual Identity Discrimination:\n● Gender or gender identity\n● Sexual orientation\n● Pregnancy or parental status\n● Gender expression\n

    Age-Based Discrimination:\n● Age\n

    Ability and Health Discrimination:\n● Disability status\n● Neurodiversity\n● Learning differences\n● Health status (chronic illnesses, rare diseases, HIV, mental health)\n● Physical appearance (body size/weight, features)\n● Genetic information\n

    Socioeconomic and Status Discrimination:\n● Socioeconomic status\n● Housing status (including homelessness)\n● Occupation or employment status\n● Educational background\n● Veterans or military status\n● Incarceration history\n● Survivor status (e.g., domestic abuse, sexual assault survivors)\n● Caregivers\n

    Belief System Discrimination:\n● Religion or belief system\n● Political affiliation\n● Philosophical convictions\n

    Lifestyle and Cultural Discrimination:\n● Marital, family make-up, relationship status \n● Dietary restrictions or preferences (e.g., veganism)\n● Mode of transportation (e.g., cyclists)\n● Dress code or personal style (e.g., tattoos, piercings)\n● Communication style (e.g., direct vs. indirect communicators)\n● Types of intelligence (e.g., emotional intelligence, musical talent)\n● Language proficiency\n

    Technology and Access Discrimination:\n● Digital literacy\n● Access to technology\n

    Health and Dependency Discrimination:\n● Living with addictions or substance dependencies\n● Specific medical conditions\n

    We are a community, if you experience or witness any of the behaviors, please talk to the person 1:1 in a kind manner about the crossed boundary. If this is not possible or unsafe, please email management@hackerdojo.com or follow posted methods of communicating issues with staff. \n

    ZERO TOLERANCE FOR RETALIATION\nSpeaking up takes courage. - Do not react negatively or retaliate against those who inform you of their concerns or report it to staff. Instead, seek to understand and work towards a resolution.\n

    \n\n

    Board of Directors Discretion. The Board of Directors has a discretionary review for all policies and may change policies at will. For example, the board of directors may override rules incompatible with state laws, our lease, or incompatible with Hacker Dojo’s vision.\n

    Policy submitted by the Secretary of The Board of Directors,\n

    By signing below, you agree to abide by the policies of Hacker Dojo shown above and acknowledge, Hacker Dojo has the right to refuse service.\n

    \n\n\n\n
    " + }, + { + "id": "policies", + "raw_name": "Hacker_Dojo_Policies", + "title": "Hacker Dojo Master Policies", + "category": "Governance", + "category_label": "Policies & Rules", + "icon": "📜", + "read_time": "10 min read", + "words": 2042, + "excerpt": "Goal: to fully enumerate all the policies we came up with over the last year, and to have them all in one place. We may want to reduce/modify this list through voting. Be excellent to...", + "toc": [ + { + "id": "facilities", + "text": "Facilities", + "level": 2 + }, + { + "id": "membership", + "text": "Membership", + "level": 2 + }, + { + "id": "visitors-drop-ins", + "text": "Visitors/Drop-Ins", + "level": 2 + }, + { + "id": "networks", + "text": "Networks", + "level": 2 + }, + { + "id": "sponsorships", + "text": "Sponsorships", + "level": 2 + }, + { + "id": "harassment", + "text": "Harassment", + "level": 2 + }, + { + "id": "events-hacker-dojo-vision-and-mission", + "text": "Events, Hacker Dojo Vision and Mission", + "level": 2 + }, + { + "id": "part-of-hacker-dojo-s-mission-consist-of", + "text": "Part of Hacker Dojo's mission consist of:", + "level": 3 + }, + { + "id": "rules-recommendations", + "text": "Rules - Recommendations", + "level": 3 + }, + { + "id": "general-event-policies", + "text": "General Event Policies", + "level": 3 + }, + { + "id": "nda-s", + "text": "NDA's", + "level": 3 + }, + { + "id": "submission", + "text": "Submission", + "level": 3 + }, + { + "id": "approval", + "text": "Approval", + "level": 3 + }, + { + "id": "event-changes", + "text": "Event Changes", + "level": 3 + }, + { + "id": "cancellation", + "text": "Cancellation", + "level": 3 + }, + { + "id": "member-rights", + "text": "Member Rights", + "level": 3 + }, + { + "id": "right-to-charge", + "text": "Right to Charge", + "level": 3 + }, + { + "id": "dojo-branding", + "text": "Dojo Branding", + "level": 3 + }, + { + "id": "before-the-event", + "text": "Before the event", + "level": 3 + }, + { + "id": "communication-to-attendees", + "text": "Communication to Attendees", + "level": 3 + }, + { + "id": "social-sharing", + "text": "Social sharing", + "level": 3 + }, + { + "id": "setup", + "text": "Setup", + "level": 3 + }, + { + "id": "during-the-event", + "text": "During the event", + "level": 3 + }, + { + "id": "presence", + "text": "Presence", + "level": 3 + }, + { + "id": "parking", + "text": "Parking", + "level": 3 + }, + { + "id": "sign-in", + "text": "Sign-in", + "level": 3 + }, + { + "id": "after-the-event", + "text": "After the event", + "level": 3 + }, + { + "id": "policy-process", + "text": "Policy Process", + "level": 3 + } + ], + "nexudus": null, + "html": "

    Goal: to fully enumerate all the policies we came up with over the last year, and to have them all in one place. We may want to reduce/modify this list through voting.\n

    \n\n\n

    Facilities

    \n\n

    Membership

    \n\n

    Visitors/Drop-Ins

    \n\n

    If you are working out of the Dojo for more than 2 days, you should become a member.\n

    \n

    Networks

    \n\n
    1. Please use only 20MHz channels. 40 and 80 MHz channels are too broad and will interfere with Hacker Dojo wifi.
    2. \n
    3. Do not use more than 3db on you AP to avoid having a stronger signal than our access points.
    4. \n
    5. For 2.4Ghz: Use only CHANNEL 11.
    6. \n
    7. For 5Ghz: Use only CHANNELS 52 54 60 64 100 104 108 112 136 140 144
    \n

    If we notice that you are not following those rules you will be forbidden to use your own Access point at Hacker Dojo and could lose your membership.\n

    \n

    Sponsorships

    \n\n

    Harassment

    \n

    Hacker Dojo is committed to providing a safe and welcoming place for everyone. See our Harassment Policy for more on how we enforce this.\n

    \n

    Events, Hacker Dojo Vision and Mission

    \n

    Hacker Dojo is a non-profit community center, co-working space, and hackerspace based in Mountain View, California. One of the primary use of Hacker Dojo is hosting Events.\n

    \n

    Part of Hacker Dojo's mission consist of:

    \n\n

    Rules - Recommendations

    \n\n

    General Event Policies

    \n

    NDA's

    \n

    Events may not require an NDA to attend.\n

    \n

    Submission

    \n\n

    Approval

    \n\n

    Event Changes

    \n

    Rooms may change in case of event conflicts.\n

    We hope event organizers will be flexible. Room assignment may be subject to change by Hacker Dojo staff even after approval with a 2-day notice. Hacker Dojo will do its best to accommodate the attendees and setup of the original event.\n

    \n

    Cancellation

    \n

    If you need to cancel your event for whatever reason, it is your responsibility to do so both in the Hacker Dojo event system, as well as any external event systems.\n

    \n

    Member Rights

    \n

    Members have the rights to attend member-run events for free. This does not mean that they are entitled to tangible resources such as food, class supplies, etc.\nMembers are not allowed to attend private events held at Hacker Dojo unless they are on the official attendees list.\n

    \n

    Right to Charge

    \n

    Event hosts may charge for events and materials provided, provided they understand that Dojo members may sit in without paying. Members suggested donation is 20% of net revenue from the event.\n

    \n

    Dojo Branding

    \n

    Any event with the name “Hacker Dojo” in the title must be approved by the board of directors.\n

    \n

    Before the event

    \n

    Any event with the name “Hacker Dojo” in the title must be approved by the board of directors.\n


    \n

    \n

    Communication to Attendees

    \n

    Event organizers should communicate these points to attendees\n

    \n\n

    Social sharing

    \n

    Please don’t forget to mention Hacker Dojo when you are sharing, talking about your event on Social networks. Twitter: @HackerDojo, Facebook: @hackerdojo, Instagram @hackerdojo.\n

    \n

    Setup

    \n\n

    During the event

    \n

    Presence

    \n

    Event Organizer must be present during the entire event.\n

    \n

    Parking

    \n

    If your event is large enough you may need your own staff member to direct overflow parking to another designated location.\n

    \n

    Sign-in

    \n

    Sign In (Policy Agreement Text)\n

    All event attendees are required to sign in at the front desk for liability reasons.\nADVERTISE/PROMOTE HACKER DOJO\nPlease encourage your attendees to give donations/ become a member.\n

    \n

    After the event

    \n

    TEARDOWN TIME\nYou can have 1-hour tear downtime at maximum. This time is shared with the setup time of the next event. If you need a large chunk of teardown time, it is suggested that you create a separate event to do so.\nROOM LAYOUT\nThe rooms must be returned like described on the sign outside each room. It includes returning the room with the correct number of chairs and desks and the correct layout. Please make sure that the included equipment is returned. The event organizer will be held responsible if the room is found in a different state.\nCLEANUP AND TRASH\nYou must leave Hacker Dojo in the condition you found it in. This includes hauling away excess garbage that does not fit in the dumpster. CIWA ((408) 261-4110) is our trash haulier. The event organizer will be held responsible if trash is found and will have to pay for the hauling.\nDAMAGES\nThe event organizer is held responsible for any damages to Dojo facilities during your event.\nSUPPLIES\nPlease refill supplies consumed in the kitchen, especially if yours is a large event as your guests will be using shared resources such as bowls, cups, glasses and more.\nEQUIPMENT\nPlease make sure to switch off the projector and others electric equipment before leaving the room.\n

    \n

    Policy Process

    \n\n

    Policy submitted by the Secretary of The Board of Directors\n

    Tanya Troshyna\n

    Policy updated by the Board Chair to reflect 855 Maude Ave, Mountain View, CA location details and notice period for event location changes.\n

    Emily Johnson\n

    \n\n\n\n
    " + }, + { + "id": "network-policies", + "raw_name": "Network_policies", + "title": "Network policies", + "category": "Governance", + "category_label": "Network Policy", + "icon": "🔐", + "read_time": "1 min read", + "words": 147, + "excerpt": "Guests are not allowed to setup an AP. Members can set up an AP for TESTING PURPOSES ONLY because your work involves an access point. Here is how you can setup your own access point:...", + "toc": [], + "nexudus": null, + "html": "

    Guests are not allowed to setup an AP.\n

    Members can set up an AP for TESTING PURPOSES ONLY because your work involves an access point.\n

    Here is how you can setup your own access point:\n

    1. Please use only 20MHz channels. 40 and 80 MHz channels are too broad and will interfere with Hacker Dojo wifi.\n

    2.Do not use more than 3db on you AP to avoid having a stronger signal than our access points.\n

    2. For 2.4Ghz: Use only CHANNEL 11.\n

    3. For 5Ghz: Use only CHANNELS 52 54 60 64 100 104 108 112 136 140 144\n

    \n
    ACCESS POINT FOR TESTING PURPOSES ONLY.\n
    \n

    INTERNET ACCESS FOR YOUR DEVICES SHOULD USE HACKER DOJO WIFI.\n


    \n

    If we notice that you are not following those rules you will be forbidden to use your own Access point at Hacker Dojo and could lose your membership. \n

    Thank you very much!\n

    \n\n\n\n
    " + }, + { + "id": "3d-printers", + "raw_name": "3D_Printers", + "title": "3D Printers Manual & Policies", + "category": "Makerspace", + "category_label": "3D Printers Guide", + "icon": "🖨️", + "read_time": "6 min read", + "words": 1143, + "excerpt": "We have 3 3D printers in the makerspace. While 3D printers can be used in a variety of ways, we have some policies to keep our printers functioning well. Filament Your filament should be kept...", + "toc": [ + { + "id": "filament", + "text": "Filament", + "level": 2 + }, + { + "id": "pla-and-abs", + "text": "PLA and ABS", + "level": 3 + }, + { + "id": "pet-g", + "text": "PET-G", + "level": 3 + }, + { + "id": "tpu", + "text": "TPU", + "level": 3 + }, + { + "id": "strength", + "text": "Strength", + "level": 3 + }, + { + "id": "d-toolkit", + "text": "D Toolkit", + "level": 2 + }, + { + "id": "prusa", + "text": "PRUSA", + "level": 2 + }, + { + "id": "original-prusa-mini", + "text": "Original Prusa MINI", + "level": 3 + }, + { + "id": "original-prusa-i3-mk3s", + "text": "Original Prusa i3 MK3S", + "level": 3 + }, + { + "id": "original-prusa-i3-upgraded-to-mk3s", + "text": "Original Prusa i3, upgraded to MK3S", + "level": 3 + }, + { + "id": "taz", + "text": "TAZ", + "level": 2 + }, + { + "id": "lulzbot-taz-6", + "text": "LULZBOT TAZ 6", + "level": 3 + }, + { + "id": "lulzbot-taz-6-dual-extruder", + "text": "LULZBOT TAZ 6 (Dual Extruder)", + "level": 3 + }, + { + "id": "makerbot", + "text": "Makerbot", + "level": 2 + } + ], + "nexudus": { + "title": "Reserve 3D Printer on Nexudus", + "desc": "Active Dojo members can book time on the Bambu Labs X1 Carbon, Prusa i3 MK3S, and Prusa Mini via our Nexudus makerspace portal.", + "url": "https://hackerdojo.spaces.nexudus.com/login?returnUrl=%2Fbookings", + "badge": "Nexudus Booking Required", + "btn_text": "⚡ Book 3D Printer" + }, + "html": "

    \"PRUSA\n

    We have 3 3D printers in the makerspace. While 3D printers can be used in a variety of ways, we have some policies to keep our printers functioning well.\n

    \n\n

    Filament

    \n

    Your filament should be kept clean and dry. Dust and dirt on the filament will clog the hot print head and cause your print to fail.\n

    \n

    PLA and ABS

    \n

    Recommended for new users. The 3D printers can use other materials, but they each introduce some complexity to the print process. Until you are very familiar with 3D printing and how other materials affect the printing, use PLA and ABS.\n

    \n\n

    PET-G

    \n

    A good material when you are ready to move up. \n

    \n\n

    TPU

    \n\n

    Strength

    \n

    There are different aspects to \"strength\", and no material wins in all categories. PLA is rigid, but that can make it brittle, so PLA is seldom the choice for parts needing strength. ABS has long been the choice for functional parts. The printed parts of the Lulzbot are made of ABS. So is Lego. But ABS warps, which is a problem on bigger prints. Nylon and polycarbonate have some great characteristics, but they are tricky to work with, and they aggressively absorb moisture from the air, so you have to keep baking your filament to dry it out. Scroll back to July 18 for some discussion of PC-MAX, a brand of polycarbonate. PET-G is really a wide range of materials, with a wide range of properties. I like ColorFab-HT, although it prints at high temperature, making warpage more of an issue. Most PET-G doesn't warp much at all. A lot of people rave about Innova-1800, although I always had a hard time getting it to stick to the bed. nGen is an easy-to-use PET-G. All of these can be used on the Lulzbot.\n

    \n

    3D Toolkit

    \n

    Consider making up your own 3D printer toolkit.\n

    \n\n


    \n\"3D\n

    \"3D\n

    \"3D\n

    \"Andre\n

    \"Andre\n


    \n

    \n

    PRUSA

    \n

    Original Prusa MINI

    \n

    1.75mm Filament, 0.4mm Nozzle\n

    Smooth heated print bed\n

    Updated to last firmware, tested and calibrated April 2024\n

    Updated to v6.0.4 firmware, tested and calibrated August 2024\n

    UNKNOWN firmware updated to incompatible version. BRICKED\n

    UN-BRICKED; Updated to v6.1.2 firmware, tested verified calibration October 2024\n

    \n

    Original Prusa i3 MK3S

    \n

    1.75mm Filament, 0.4mm Nozzle\n

    Smooth heated print bed\n

    Updated to latest firmware, tested and calibrated April 2024\n

    Updated to 3.14.0 firmware, tested and calibrated August 2024\n

    Ready for upgrade, printing is so so even with newer filament\nSeems to have been abused a bit with really high temperature filaments and bed temps\nSpells like toxic and burned bits coming out, mostly functional, still some consistency issues\nDo'h (talk) 20:51, 11 October 2024 (PDT)\n

    \n

    Original Prusa i3, upgraded to MK3S

    \n

    1.75mm Filament, 0.6mm Nozzle\n

    Textured bed, adhesion sometimes inconsistent.\n

    Updated to latest firmware, tested and calibrated April 2024\n


    \n

    \n

    TAZ

    \n

    The carriage frame of the TAZ must be square for the printer to work well. The TAZ should NOT be moved around the shop. Every time you move it you risk tweaking the frame. Leave the TAZ where it is! \n

    The TAZ has a heated bed. The bed is easily scratched and damaged. Do not pull your part off the bed. Do not gouge at the bed. A new bed costs $150.\n

    \n\n\n\n\n\n

    LULZBOT TAZ 6

    \n

    Currently parked in Laser Lab. Has 1.75mm and 2.85mm extruder?\n

    \n

    LULZBOT TAZ 6 (Dual Extruder)

    \n

    Configured with dual 1.75mm extruders. Currently being tested and configured in Electronics Lab.\n

    Has 1.75mm and 2.85mm dual extruders, and single extruder.\n

    Cura LE loaded on Mac workstation. For working with dual filaments, select the models and use the Merge Models then slice.\n

    \n

    Makerbot

    \n

    Legacy printer, none of this type currently at Hacker Dojo\n

    \n\n\n\n
    " + }, + { + "id": "laser-cutter", + "raw_name": "Laser_Cutter", + "title": "Laser Cutter Operation & Safety", + "category": "Makerspace", + "category_label": "Laser Cutter", + "icon": "⚡", + "read_time": "7 min read", + "words": 1476, + "excerpt": "Hacker Dojo is equipped with a 100W CO2 Laser Cutter (Thunder Laser) located in the Maker Labs. The laser cutter is a high-demand, high-power tool. To ensure community safety and equipment longevity, mandatory safety induction...", + "toc": [ + { + "id": "why-use-the-laser-cutter", + "text": "Why Use the Laser Cutter?", + "level": 2 + }, + { + "id": "access-to-the-dojo-laser", + "text": "Access to the Dojo Laser", + "level": 2 + }, + { + "id": "reserving-the-laser-cutter", + "text": "Reserving the Laser Cutter", + "level": 3 + }, + { + "id": "laser-support", + "text": "Laser Support", + "level": 3 + }, + { + "id": "safety", + "text": "Safety", + "level": 2 + }, + { + "id": "basic-safety-rules", + "text": "Basic Safety Rules", + "level": 3 + }, + { + "id": "operational-safety-rules", + "text": "Operational Safety Rules", + "level": 3 + }, + { + "id": "specific-safety-for-the-thunder-laser", + "text": "Specific Safety for the Thunder Laser", + "level": 3 + }, + { + "id": "materials", + "text": "Materials", + "level": 2 + }, + { + "id": "approved-etching-materials", + "text": "Approved Etching Materials", + "level": 3 + }, + { + "id": "restricted-materials", + "text": "Restricted Materials", + "level": 3 + } + ], + "nexudus": { + "title": "Book Laser Cutter on Nexudus", + "desc": "Trained & certified members can reserve time slots on the 100W CO2 Laser Cutter through Nexudus. Please ensure you have completed safety induction.", + "url": "https://hackerdojo.spaces.nexudus.com/login?returnUrl=%2Fbookings", + "badge": "Certification Required", + "btn_text": "⚡ Reserve Laser Cutter" + }, + "html": "

    Hacker Dojo is equipped with a 100W CO2 Laser Cutter (Thunder Laser) located in the Maker Labs. The laser cutter is a high-demand, high-power tool. To ensure community safety and equipment longevity, mandatory safety induction and certification are required prior to use. Active certified members can reserve time slots via our Nexudus Booking Portal.

    \n\n


    \n

    \n\n

    Why Use the Laser Cutter?

    \n

    The laser cutter can be used to precision cut some materials up to 0.25 inches thick. The cuts are computer controlled and thus repeatable. A well focused laser with the correct power and speed will cut a kerf of 0.002 inches in 3mm material.\n

    The laser can also be used to mark items by raster scanning an image over the surface. It works in much the way an inkjet printer works, but the laser is used to burn off little bits of the surface of the material to mark the image. The laser is very powerful, but by carefully using a very slight amount of laser power, subtle effects can be achieved. \n

    \n

    Access to the Dojo Laser

    \n

    A Dojo member must successfully complete a Dojo Laser Operation Class before using the laser cutter; this is to keep us all safe and the machine running well. Classes are scheduled on an ad hoc basis. If you would like to attend one, post a note to the #laser channel on Slack. \n

    \n

    Reserving the Laser Cutter

    \n

    Dojo members can reserve time on the laser by using the Book Amenities icon on your Nexudus Portal. A Dojo member may reserve up to 3 hours at a time, twice a week, for a total of 6 hours a week. If the machine is not reserved, then other members may use it. If you have used your 6 hours in a week, you should not start long laser jobs - if another Dojo member requests access you should let them have the laser within 30 minutes of when they asked for it. \n


    \nIf you make a reservation and know you won't keep it, then it's your responsibility to the community to remove your reservation from the system - don't tie up the laser for a reservation that you won't use. Also note that if your job starts running long, you should adjust the end time of your reservation. The reservation system is how we communicate; please use it. If someone abuses the reservation system, they could be denied use of the machine. \n

    \n

    Laser Support

    \n

    If you plan on using the laser cutter, join and monitor the #laser channel in the Dojo Slack, also available on your Nexudus Portal. You can ask questions or post updates that the community needs to know. \n

    \n

    Safety

    \n

    This machine is dangerous. Used incorrectly it can cause permanent damage to you or other people in the building. As a result of this shared danger, we all have the responsibility to police each other. We each have a duty to question anyone using the laser in a way we feel unsafe. If you are using this machine in an unsafe manner, your laser cutting privileges will be restricted and may result in banishment from the Dojo.\n

    Members are allowed to question any laser cutting operator about the materials they are cutting. If you are operating the laser and someone questions you about the safety of your operation, you should not be offended. If someone asks you to stop what you are doing, for any reason, then you must pause your laser job and discuss their concern. If you cannot resolve the concern between the two parties, then seek out a third party. \n

    Bottom line: No matter what you are doing on the laser, no matter how important your job is, if someone asks you to stop it for a safety concern, you are obligated to stop IMMEDIATELY. If you do not, then you may lose your access to the laser cutter even if you are later proven correct.\n

    \n

    Basic Safety Rules

    \n

    In general these rules apply to the Makerspace.\n

    \n\n

    Operational Safety Rules

    \n

    This is all covered in the class and documentation, but restated here because it is so important.\n

    \n\n

    Specific Safety for the Thunder Laser

    \n\n

    Materials

    \n

    The basic cutting controls for the laser are Speed (mm/sec) and Power (% of 100 watts). The first time you use a particular laserable material, check the suggested levels on the printouts next to the laser. These will give you a guideline, but you must experiment with different combinations of Speed and Power to find the best settings for your material. \n

    The \"best\" combination is one that cuts without burning and without excessive smoking. Start with the suggested Speed and Power and make small test cuts. If they do not cut through increase the Power 10 ppt and reduce the Speed 10 mm/sec. Once the laser cuts through your material, consider increasing the Speed and reducing the Power. Many materials require a certain amount of time to interact with the laser and you will not be able to increase the Speed above a certain point, no matter how much Power you use. \n

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    Approved Materials\n
    Untreated Wood (max. 1/4)\nPlywood/Composite Woods (max. 1/4)\nMDF/Engineered Woods (max. 1/4)\nUntreated Paper/Cardstock\nCardboard\n
    Acrylic/Lucite/Plexiglas/PMMA (max. 1/2)\nThin PolyCarbonate Sheeting (< 1mm)\nDerlin\nKapton Tape (max. 1/16)\nMylar (max. 1/16)\n
    Cloth/Felt/Hemp/Cotton\nPlain Leather/Suede\nMagnetic Sheet\nNON-CHLORINE containing Rubber\n
    \n

    Approved Etching Materials

    \n\n

    Restricted Materials

    \n

    Materials can be dangerous when laser cut or etched because of the poisonous gases generated. \nDO NOT LASER UNKNOWN MATERIALS. If your material is not on the approved list above, you must have a Material Safety Data Sheet (MSDS) from your material supplier. \n

    \n\n

    A third class of materials can be safely lasered but cause such a stench that they are not allowed to be laser cut at the Hacker Dojo. Since the Dojo is a shared space, we must respect the other members. If your laser safe material is generating a lot of unpleasant fumes, then you must stop. Any member of the Dojo may step into the room and ask you to stop. If they do, then you must stop. If you do not stop, you may lose access to the laser cutter.\n

    Class Handout available to anyone who takes the laser training.\n

    \n\n\n\n
    " + }, + { + "id": "machine-tools", + "raw_name": "Machine_Tools", + "title": "Machine Tools", + "category": "Makerspace", + "category_label": "Machine Tools", + "icon": "🔧", + "read_time": "1 min read", + "words": 185, + "excerpt": "The maker space at the dojo has several machines for your use. If you are unfamiliar with a particular machine or tool, or if you are not clear on how to use that machine or...", + "toc": [ + { + "id": "tips", + "text": "Tips", + "level": 2 + } + ], + "nexudus": null, + "html": "

    The maker space at the dojo has several machines for your use. If you are unfamiliar with a particular machine or tool, or if you are not clear on how to use that machine or tool safely - then do not use it.\n

    \n

    Tips

    \n\n\n\n\n
    " + }, + { + "id": "maintenance", + "raw_name": "Maintenance", + "title": "Maintenance", + "category": "Makerspace", + "category_label": "Tool Maintenance", + "icon": "🧰", + "read_time": "1 min read", + "words": 13, + "excerpt": "Calibration See the operation handout page on calibration for a mirror adjustment reference....", + "toc": [ + { + "id": "calibration", + "text": "Calibration", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Calibration

    \n

    See the operation handout page on calibration for a mirror adjustment reference.\n

    \n\n\n\n
    " + }, + { + "id": "maker-labs", + "raw_name": "Maker_labs", + "title": "Maker Labs & Safety Rules", + "category": "Makerspace", + "category_label": "Makerspace Safety", + "icon": "🛠️", + "read_time": "1 min read", + "words": 101, + "excerpt": "General Makerspace Safety & Housekeeping Do not enter the Makerspace intoxicated. Do not use the tools when you are tired. Food and drinks are not allowed in the Makerspace. Do not lean on the tools...", + "toc": [ + { + "id": "general-makerspace-safety-housekeeping", + "text": "General Makerspace Safety & Housekeeping", + "level": 2 + }, + { + "id": "laser-cutter", + "text": "Laser Cutter", + "level": 4 + }, + { + "id": "machine-tools", + "text": "Machine Tools", + "level": 4 + }, + { + "id": "d-printers", + "text": "D Printers", + "level": 4 + } + ], + "nexudus": { + "title": "Maker Lab Induction & Access", + "desc": "Nexudus manages access, tool certification records, and room bookings for all Dojo makerspaces and work areas.", + "url": "https://hackerdojo.spaces.nexudus.com/login", + "badge": "Makerspace Safety", + "btn_text": "🛠️ View Makerspace Portal" + }, + "html": "

    General Makerspace Safety & Housekeeping

    \n\n

    There are fire extinguishers in the maker space. If something catches fire, use an extinguisher.\n

    \n\n

    Laser Cutter

    \n
    Maintenance
    \n

    Machine Tools

    \n

    3D Printers

    \n

    If you would like to contribute, donate or add a project here, please ping management@hackerdojo.com\n

    Projects: \nOpen Hacks\n

    \n\n\n\n
    " + }, + { + "id": "qsv-amateur-radio", + "raw_name": "QSV", + "title": "Amateur Radio Station (W6HDO / QSV)", + "category": "Tech", + "category_label": "Amateur Radio QSV", + "icon": "📻", + "read_time": "2 min read", + "words": 495, + "excerpt": "Amateur Radio in and around Mt. foo View along with related topics. Frequencies 2 Meter / VHF Table caption Repeater MHz +/- PL Location Net NA6MF 145.250 -600 123.0 Moffet Field+ Tuesday Noon W6ASH 145.270...", + "toc": [ + { + "id": "frequencies", + "text": "Frequencies", + "level": 2 + }, + { + "id": "meter-vhf", + "text": "Meter / VHF", + "level": 3 + }, + { + "id": "echolink", + "text": "EchoLink", + "level": 2 + }, + { + "id": "raspbery-pi-4-debian-12-bookworm", + "text": "Raspbery Pi 4 Debian 12 (Bookworm)", + "level": 3 + }, + { + "id": "lawn-tennis", + "text": "Lawn Tennis", + "level": 2 + }, + { + "id": "qsv", + "text": "QSV", + "level": 2 + }, + { + "id": "historical-announcement", + "text": "Historical Announcement", + "level": 3 + }, + { + "id": "ham-string", + "text": "ham_string", + "level": 2 + }, + { + "id": "links", + "text": "Links", + "level": 2 + }, + { + "id": "tbd", + "text": "TBD", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Amateur Radio in and around Mt. foo View along with related topics.\n

    \"QSV\n

    \n\n

    Frequencies

    \n

    2 Meter / VHF

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    Table caption\n
    Repeater\nMHz\n+/-\nPL\nLocation\nNet\n
    NA6MF\n145.250\n-600\n123.0\nMoffet Field+\nTuesday Noon\n
    W6ASH\n145.270\n-600\n100.0\nEl Camino Hospital\nMonday 20:00 SPECS\n
    N6NFI\n145.230\n-600\n100.0\nStanford Dish\nM-F 9amtalk.net\n
    W6LAH\n146.7450\n-600\n110.9\nLos Altos Hills\n
    W6TI\n147.3600\n+600\n110.9\nPalo Alto, Black Mountain\n
    WW6BAY\n145.3900\n-600\n100.0\nPalo Alto, Black Mountain\n
    KM6DLG\n146.0850\n+600\n110.9\nPortola Valley\n
    WA2IBM\n145.1900\n-600\n151.4\nSanta Teresa Foothills\n
    \n

    EchoLink

    \n

    http://echolink.org/\n

    https://github.com/sm0svx/svxlink\n

    \n

    Raspbery Pi 4 Debian 12 (Bookworm)

    \n\n

    Lawn Tennis

    \n

    \"Lawn-Tennis-Vertical-Sync.png\"\n

    \n

    QSV

    \n

    Continuing on in 2024, 1st Monday and 3rd Friday of the month. QTH Olympus Cafe, 12:34\n


    \n

    \n

    Historical Announcement

    \n
         1    Announcing QSV Lunch this Friday March 18 at 12:34pm.\n     2\n     3    QSV?\n     4        QSV are Hams who Hack -- The intersection of Amateur Radio and\n     5        Hacker/Maker/STEM culture, in Mountain View, California.\n     6\n     7    Don't all hams hack?\n     8        Yes, probably so!\n     9        But this defines our culture and focuses our topics.\n    10\n    11    Where?\n    12        at the outdoor picnic tables of\n    13        Olympus Caffe & Bakery, Mountain View.\n    14          -- https://cafeolympus.com/\n    15          -- https://www.openstreetmap.org/node/1306273777\n    16        We sit towards the corner of the block (Castro at Evelyn).\n    17\n    18    Why There?\n    19        * outdoor tables\n    20        * you can come and go at will, be early, be late\n    21        * easy to move around and chat with different people\n    22        * order as much or as little as you like:\n    23          -- free water\n    24          -- coffee and tea\n    25          -- turkish pastries and european/american desserts\n    26          -- wide variety of breakfasts, lunches, and dinners\n    27             https://cafeolympus.com/breakfast\n    28             https://cafeolympus.com/lunch-%26-dinner\n    29          -- including gyro/kebap/kofte/souvlaki\n    30          -- German beers and Biergarten Speisen (Wurst, Schnitzel,usw)\n    31             https://dasbierhauz.com/burger-%26-sausage\n    32        * order and pay at the counter, take a number,\n    33              and they bring it out to you.  So no waiting on the check.\n    34        * right next to light rail and loud caltrains and VTA transit center\n    35\n    36    How Often?\n    37        Our current schedule is\n    38          -- First Mondays\n    39                  and\n    40          -- Third Fridays\n    41                  always at 12:34pm.\n    42\n    43    Keep me informed?\n    44        Subscribe at https://groups.io/g/qsv\n    45        if you want to receive updates.\n    46\n    47    Questions?  Ask W6REK or K6EAU.\n
    \n

    ham_string

    \n

    point to point wireless backbone for regional mesh\n

    Done right would be AI6KG & W6MRR concurring an excellent solution.\n

    VHF/UHF/900-915MHz/2.4GHz/5.8GHz/10GHz/60GHz\n

    \"USB\nLiberating HP laptop with Ubuntu installed from key.\n


    \n

    \n

    Links

    \n

    http://9amtalk.net/\n

    https://labitat.dk/wiki/WSPR\n

    https://www.noisebridge.net/wiki/HAM\n


    \n

    \n

    TBD

    \n\n\n\n\n
    " + }, + { + "id": "wifi-troubleshooting", + "raw_name": "How_to_troubleshoot_wifi_issues", + "title": "How to troubleshoot wifi issues", + "category": "Tech", + "category_label": "WiFi & Network", + "icon": "📶", + "read_time": "1 min read", + "words": 131, + "excerpt": "Wifi All our wifi portal require loading of a splash screen. If the splash screen does not appear on your computer or phone after joining the wifi, please open your browser and load any non-https...", + "toc": [ + { + "id": "wifi", + "text": "Wifi", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Wifi

    \n

    All our wifi portal require loading of a splash screen. \nIf the splash screen does not appear on your computer or phone after joining the wifi, please open your browser and load any non-https url such as http://example.com\n

    Visitors\nHD-Guest : No password'\n

    Members:\nHD-Members : hackerdojo\n

    Event Attendees:\nHD-Events : ask your event host for the password\n

    Checking these 3 things usually resolves 99% of wifi issues.\n

    1. Turn off VPN / Proxy. Using VPN or Proxy configurations may prevent you from authenticating with your Wifi Access point.\n

    2. Use the Correct Username / Password when logging in. For hd members login with your @hackerdojo.com username not gmail\n

    3. Event hosts, if you have reserved multiple events on the calendar, make sure the wifi password is for today's event!\n

    \n\n\n\n
    " + }, + { + "id": "admin-wiki", + "raw_name": "Admin_wiki", + "title": "Admin wiki", + "category": "Community", + "category_label": "Admin & Ops", + "icon": "💼", + "read_time": "1 min read", + "words": 14, + "excerpt": "Link to create a new account in the wiki: Special:UserLogin Check/Assign user rights Special:UserRights...", + "toc": [], + "nexudus": null, + "html": "

    Link to create a new account in the wiki: Special:UserLogin\n

    Check/Assign user rights Special:UserRights\n

    \n\n\n\n
    " + }, + { + "id": "community", + "raw_name": "Community", + "title": "Community", + "category": "Community", + "category_label": "Community Groups", + "icon": "🤝", + "read_time": "1 min read", + "words": 121, + "excerpt": "Community Below are pages created by the community, volunteers and event organizers. If you like to add your initiative here, please reach out as we will be ramping up this page more. If you would...", + "toc": [ + { + "id": "community", + "text": "Community", + "level": 2 + }, + { + "id": "ham", + "text": "HAM", + "level": 3 + }, + { + "id": "friday-night-socials", + "text": "Friday Night Socials", + "level": 3 + }, + { + "id": "music-corner", + "text": "Music Corner", + "level": 3 + }, + { + "id": "meditation-sessions", + "text": "Meditation Sessions", + "level": 3 + } + ], + "nexudus": null, + "html": "
    \n

    Community

    \n

    Below are pages created by the community, volunteers and event organizers. \nIf you like to add your initiative here, please reach out as we will be ramping up this page more. \n

    If you would like to join our Open Discord Community chat:\nhttps://discord.gg/aBBnguYCA5\n

    \n

    HAM

    \n

    Amateur Radio in and around Mt.View along with related topics\n

    \n

    Friday Night Socials

    \n

    Interested in helping host our Friday night socials, connect with one of our organizers and get the scoop here. \nIt's probably been our most popular event since rebooting out of the pandemic. \n

    \n

    Music Corner

    \n

    We have a bunch of instruments and controllers ready to rock out. \n

    \n

    Meditation Sessions

    \n

    Our meditation sessions are quick breaks in the day to help you focus and destress.\n

    \n\n\n\n
    " + }, + { + "id": "events", + "raw_name": "Events", + "title": "Events", + "category": "Community", + "category_label": "Hosting Events", + "icon": "🎉", + "read_time": "3 min read", + "words": 585, + "excerpt": "Hacker Dojo Policies Please review the Hacker Dojo Events Policies before submitting and completing an event. Before the Event Communication to attendees Event organizers should communicate these points to attendees How to come to Hacker...", + "toc": [ + { + "id": "hacker-dojo-policies", + "text": "Hacker Dojo Policies", + "level": 2 + }, + { + "id": "before-the-event", + "text": "Before the Event", + "level": 2 + }, + { + "id": "communication-to-attendees", + "text": "Communication to attendees", + "level": 3 + }, + { + "id": "social-sharing", + "text": "Social Sharing", + "level": 3 + }, + { + "id": "setup", + "text": "Setup", + "level": 2 + }, + { + "id": "during-the-event", + "text": "During the Event", + "level": 2 + }, + { + "id": "after-the-event", + "text": "After the Event", + "level": 2 + }, + { + "id": "policy-process", + "text": "Policy Process", + "level": 2 + } + ], + "nexudus": { + "title": "Book Dojo Event Spaces on Nexudus", + "desc": "Need to host a meetup, workshop, or hackathon? Reserve Dojo event spaces and rooms on the Nexudus portal.", + "url": "https://hackerdojo.spaces.nexudus.com/login?returnUrl=%2Fbookings", + "badge": "Event Booking", + "btn_text": "📅 Reserve Event Space" + }, + "html": "
    \n

    Hacker Dojo Policies

    \n

    Please review the Hacker Dojo Events Policies before submitting and completing an event.\n

    \n

    Before the Event

    \n

    Communication to attendees

    \n\n

    Social Sharing

    \n

    Please don’t forget to mention Hacker Dojo when you are sharing, talking about your event on Social networks. Twitter: @HackerDojo, Facebook: , Instagram:\n

    \n

    Setup

    \n\n

    During the Event

    \n\n

    If your event is large enough you may need your own staff member to direct parking.\n

    \n\n

    After the Event

    \n\n

    If you need a large chunk of tear down time, it is suggested that you create a separate event to do so.\n

    \n\n

    Policy Process

    \n\n\n\n\n
    " + }, + { + "id": "membership", + "raw_name": "Hacker_Dojo_Membership", + "title": "Hacker Dojo Membership", + "category": "Community", + "category_label": "Membership Info", + "icon": "🎟️", + "read_time": "2 min read", + "words": 337, + "excerpt": "Membership Costs We have three membership levels. Standard: $150 / month (or $1,350 / year — save $450 with 3 months free). 24/7 keycard access, fiber internet, shared desks, maker labs, and meeting rooms.Student: $75...", + "toc": [ + { + "id": "membership-costs", + "text": "Membership Costs", + "level": 2 + }, + { + "id": "membership-benefits", + "text": "Membership Benefits", + "level": 2 + }, + { + "id": "list-of-benefits", + "text": "List of Benefits", + "level": 3 + }, + { + "id": "refund-policy-holds", + "text": "Refund Policy & Holds", + "level": 2 + } + ], + "nexudus": { + "title": "Manage Membership in Nexudus", + "desc": "Update payment methods, view invoices, register guest passes, and access 24/7 keycard permissions.", + "url": "https://hackerdojo.spaces.nexudus.com/login", + "badge": "Member Account", + "btn_text": "🎟️ Open Member Portal" + }, + "html": "
    \n

    Membership Costs

    \n

    We have three membership levels.\n

    \n\n

    Membership Benefits

    \n

    The Hacker Dojo is a place where you can work and sometimes play, away from the distractions of home or the office. A place where you can collaborate with others, and focus on what is important. Unlike a coffee shop, at the Dojo you can, and are expected to interact with other people at the Dojo.\n

    To fully utilize the Hacker Dojo, you should be aware of all the benefits of membership.\n

    \n

    List of Benefits

    \n\n

    Refund Policy & Holds

    \n

    To manage your membership, update payment methods, put your membership on hold, or cancel, please log into the Nexudus Member Portal. Membership dues are non-refundable once billed, but monthly plans can be canceled anytime prior to your next renewal date.

    \n\n\n\n
    " + }, + { + "id": "visitors", + "raw_name": "Hacker_Dojo_Visitors", + "title": "Hacker Dojo Visitors", + "category": "Community", + "category_label": "Visitor FAQ", + "icon": "👥", + "read_time": "2 min read", + "words": 396, + "excerpt": "Hello! Thanks for checking out Hacker Dojo. We're usually open M-F 10:00am - 9:00pm for visitors, though you may want to check the Home Page to see if anyone has signed in as staff to...", + "toc": [ + { + "id": "what-to-do-as-a-visitor", + "text": "What to Do as a Visitor", + "level": 2 + }, + { + "id": "sign-in", + "text": "Sign In", + "level": 3 + }, + { + "id": "grab-a-seat", + "text": "Grab a Seat", + "level": 3 + }, + { + "id": "connect-to-wifi", + "text": "Connect to Wifi", + "level": 3 + }, + { + "id": "attend-an-event", + "text": "Attend an Event", + "level": 3 + }, + { + "id": "when-to-visit", + "text": "When to Visit", + "level": 2 + } + ], + "nexudus": null, + "html": "

    Hello! Thanks for checking out Hacker Dojo.\n

    We're usually open M-F 10:00am - 9:00pm for visitors, though you may want to check the Home Page to see if anyone has signed in as staff to give you a tour. A donation of $10 is appreciated. As soon as you sign up as a member you'll get your own key, and you can use the Dojo 24/7.\n

    \n\n

    What to Do as a Visitor

    \n

    Sign In

    \n

    First off, sign in. We won't spam you with thousands of emails, it just helps us keep track of how many visitors are coming to the Dojo. When you enter the front door, there is a small laptop on the desk, and you just have to type in your email address.\n

    \n

    Grab a Seat

    \n

    The main space, event space and classroom all have open seating. So if you find a spot that looks empty, it's there for you! A lot of people will be working or hacking on their laptops around you. Some will be focused, but others are always open for a chat! A good technique is to walk around, introduce yourself by name, and ask, \"What are you working on?\" Or hang out in the kitchen and grab a cup of coffee or tea.\n

    \n

    Connect to Wifi

    \n

    Hacker Dojo is wifi only, and we do monitor the network. If you plan on using one of our networks, you must agree to our Hacker Dojo Policies.\n

    Connect to HD-Guest. This is our guest wifi and open. Everybody can access it and can login on it. After you login, your device will be allowed one day of wifi usage per 7 days. After one day of use, the internet will be shut down until the next week. \n

    \n

    Attend an Event

    \n

    The Dojo has a lot of classes and events that are good ice-breakers. On Fridays after work, you're likely to find us mixing drinks and socializing at our Happy Hour Lightning Talks.\n

    \n

    When to Visit

    \n

    Evenings, around 7PM, is usually our peak time, in terms of numbers of people. We have many events listed on our events page. If you'd prefer a quieter environment, come earlier in the day. Weekends vary greatly, if the weather is nice in Mountain View (...often!) the place might be empty on a Saturday. Or, there could be a mega-event with 150+ people. Check the events schedule!\n

    \n\n\n\n
    " + }, + { + "id": "marketing", + "raw_name": "Marketing", + "title": "Marketing", + "category": "Community", + "category_label": "Branding & Logos", + "icon": "🎨", + "read_time": "2 min read", + "words": 362, + "excerpt": "Branding and Logo We love it when people want to promote the Dojo, but please respect our branding guidelines! Logos The font for our logo is Whitney Medium. Only use this font for reconstructing the...", + "toc": [ + { + "id": "branding-and-logo", + "text": "Branding and Logo", + "level": 2 + }, + { + "id": "logos", + "text": "Logos", + "level": 3 + }, + { + "id": "main-logo", + "text": "Main Logo", + "level": 3 + }, + { + "id": "dark-on-light", + "text": "Dark on Light", + "level": 3 + }, + { + "id": "just-the-tori", + "text": "Just the Tori", + "level": 3 + }, + { + "id": "branding-guidelines", + "text": "Branding Guidelines", + "level": 3 + }, + { + "id": "events-guidelines", + "text": "Events Guidelines", + "level": 3 + } + ], + "nexudus": null, + "html": "
    \n

    Branding and Logo

    \n

    We love it when people want to promote the Dojo, but please respect our branding guidelines!\n

    \n

    Logos

    \n

    The font for our logo is Whitney Medium. Only use this font for reconstructing the original logo.\n

    The official colors used for our logo are:\n

    Red: PANTONE 1945 C
    \nBlack: black
    \nWhite: white
    \n


    \n

    \n

    Main Logo

    \n

    Our normal logo is good enough in most circumstances.\n

    \n
    \"Logo\n
    \n


    \n

    Downloads: Adobe Illustrator Format | 1200x2400 Black Text PNG\n


    \n

    \n

    Dark on Light

    \n

    It is to be used when the background you're printing on is dark and would hide the dark lettering. We put up this gray background in HTML as an example, but you can decide to use this version of the logo whenever you think it would look better.\n


    \n\"LogoDarkonLight.png\"\n


    \nDownloads: Adobe Illustrator Format | 1732x4905 White Text PNG\n


    \n

    \n

    Just the Tori

    \n

    An alternative icon without the text\n


    \n\"ToriOnlyFill.png\"\n


    \nDownloads: Adobe Illustrator | PNG\n


    \n

    \n

    Branding Guidelines

    \n\n


    \nOK: \"Bunny Fair at Hacker Dojo\"\n


    \nNOT OK: \"Hacker Dojo Bunny Fair\"\n


    \n

    \n

    Events Guidelines

    \n\n\n\n\n
    " + } +]; diff --git a/wiki.html b/wiki.html new file mode 100644 index 0000000..e214ecb --- /dev/null +++ b/wiki.html @@ -0,0 +1,6 @@ +--- +layout: default +title: Wiki & Knowledge Base - Hacker Dojo +permalink: /wiki/ +--- +{% include_relative pages/wiki/wiki-page.html %}