├── .gitignore ├── .ruby-version ├── Gemfile ├── Gemfile.lock ├── _config.yml ├── _data └── chapters.yml ├── _includes ├── chapters-list.html ├── footer.html ├── header.html ├── nav.html └── page_lister.html ├── _layouts ├── baseof.html ├── default.html ├── home.html └── page.html ├── _lesson_plans └── intro.md ├── _sass └── main.sass ├── assets ├── favicon.png ├── font │ └── vampiroone_regular_macroman │ │ ├── SIL Open Font License.txt │ │ ├── VampiroOne-Regular-webfont.woff │ │ └── stylesheet.css ├── img │ ├── RustBridgeBerlin.png │ ├── RustBridge_clean.png │ ├── rb.jpg │ ├── rb.jpg~ │ ├── rb.png │ ├── rust-bg.png │ ├── rust-logo-blk.svg │ ├── rustbridge.jpg │ ├── rustbridge.original.jpg │ ├── rustbridge1.jpg │ ├── rustbridge1.original.jpg │ ├── rustday.jpg │ ├── rustday.original.jpg │ ├── wocintech.jpg │ └── wocintech.original.jpg └── js │ └── search-data.json ├── chapters.md ├── code-of-conduct.de.md ├── code-of-conduct.md ├── css └── main.scss ├── index.md ├── learn.md ├── lesson-plans.md ├── optimise-images.py └── organizing ├── before.md ├── chapter.md ├── coaching-advice.md ├── during.md ├── handling-money.md ├── organizing.md ├── outreach ├── hubs.md ├── outreach.md └── universities.md ├── questions.md ├── social-media.md └── venue.md /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | .DS_Store 3 | .sass-cache/ 4 | .jekyll-cache 5 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.1.3 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "jekyll", "~> 4.1.1" 4 | gem "jekyll-octicons" 5 | #gem "just-the-docs" 6 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.8.1) 5 | public_suffix (>= 2.0.2, < 6.0) 6 | colorator (1.1.0) 7 | concurrent-ruby (1.1.10) 8 | em-websocket (0.5.2) 9 | eventmachine (>= 0.12.9) 10 | http_parser.rb (~> 0.6.0) 11 | eventmachine (1.2.7) 12 | ffi (1.13.1) 13 | forwardable-extended (2.6.0) 14 | http_parser.rb (0.6.0) 15 | i18n (1.12.0) 16 | concurrent-ruby (~> 1.0) 17 | jekyll (4.1.1) 18 | addressable (~> 2.4) 19 | colorator (~> 1.0) 20 | em-websocket (~> 0.5) 21 | i18n (~> 1.0) 22 | jekyll-sass-converter (~> 2.0) 23 | jekyll-watch (~> 2.0) 24 | kramdown (~> 2.1) 25 | kramdown-parser-gfm (~> 1.0) 26 | liquid (~> 4.0) 27 | mercenary (~> 0.4.0) 28 | pathutil (~> 0.9) 29 | rouge (~> 3.0) 30 | safe_yaml (~> 1.0) 31 | terminal-table (~> 1.8) 32 | jekyll-octicons (11.0.0) 33 | jekyll (>= 3.6, < 5.0) 34 | octicons (= 11.0.0) 35 | jekyll-sass-converter (2.1.0) 36 | sassc (> 2.0.1, < 3.0) 37 | jekyll-watch (2.2.1) 38 | listen (~> 3.0) 39 | kramdown (2.3.1) 40 | rexml 41 | kramdown-parser-gfm (1.1.0) 42 | kramdown (~> 2.0) 43 | liquid (4.0.3) 44 | listen (3.7.1) 45 | rb-fsevent (~> 0.10, >= 0.10.3) 46 | rb-inotify (~> 0.9, >= 0.9.10) 47 | mercenary (0.4.0) 48 | mini_portile2 (2.8.5) 49 | nokogiri (1.16.2) 50 | mini_portile2 (~> 2.8.2) 51 | racc (~> 1.4) 52 | octicons (11.0.0) 53 | nokogiri (>= 1.6.3.1) 54 | pathutil (0.16.2) 55 | forwardable-extended (~> 2.6) 56 | public_suffix (4.0.6) 57 | racc (1.7.3) 58 | rb-fsevent (0.10.4) 59 | rb-inotify (0.10.1) 60 | ffi (~> 1.0) 61 | rexml (3.2.5) 62 | rouge (3.24.0) 63 | safe_yaml (1.0.5) 64 | sassc (2.4.0) 65 | ffi (~> 1.9) 66 | terminal-table (1.8.0) 67 | unicode-display_width (~> 1.1, >= 1.1.1) 68 | unicode-display_width (1.7.0) 69 | 70 | PLATFORMS 71 | ruby 72 | 73 | DEPENDENCIES 74 | jekyll (~> 4.1.1) 75 | jekyll-octicons 76 | 77 | BUNDLED WITH 78 | 2.1.4 79 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | title: "RustBridge" 2 | description: "An inclusive workshop program for newcomers to Rust" 3 | #theme: just-the-docs 4 | plugins: 5 | - jekyll-octicons 6 | markdown: "kramdown" 7 | kramdown: 8 | parse_block_html: true 9 | permalink: pretty 10 | search_enabled: true 11 | aux_links: 12 | "Edit this on GitHub": 13 | - "https://github.com/rustbridge/website" 14 | sass: 15 | style: :compressed 16 | 17 | links: 18 | contact: 19 | Twitter: "https://twitter.com/rustbridge" 20 | Discord: "https://discord.gg/jEKp4bXC" 21 | GitHub: "https://github.com/rustbridge/" 22 | resources: 23 | "Rust": "https://www.rust-lang.org/" 24 | Rustlings: "https://github.com/rust-lang/rustlings" 25 | "Rusty Snake Book": "https://snake.rustbridge.com/" 26 | 27 | collections: 28 | - lesson_plans 29 | -------------------------------------------------------------------------------- /_data/chapters.yml: -------------------------------------------------------------------------------- 1 | - name: RustBridge Berlin 2 | location: 3 | city: Berlin 4 | country: Germany 5 | url: https://berlin.rustbridge.com/ 6 | mail: berlin@rustbridge.com' 7 | contact: 8 | - Marisa (mokou@posteo.de) 9 | - Lisa (mail@lislis.de) 10 | - Tanks (tanks@ferrous-systems.com) 11 | -------------------------------------------------------------------------------- /_includes/chapters-list.html: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /_includes/footer.html: -------------------------------------------------------------------------------- 1 | 30 | -------------------------------------------------------------------------------- /_includes/header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

4 | 5 | 6 | RustBridge 7 | 8 |

9 |
10 |
11 | -------------------------------------------------------------------------------- /_includes/nav.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /_includes/page_lister.html: -------------------------------------------------------------------------------- 1 | {% assign dir = include.dir | default: page.dir %} 2 |
3 | {% assign mypages = site.pages | where:"dir", dir | where_exp:"item", "item.name != page.name" %} 4 | {% if mypages.length > 0 %} 5 | 18 | {% else %} 19 |

No pages found in folder {{ dir }}.

20 | {% endif %} 21 |
22 | -------------------------------------------------------------------------------- /_layouts/baseof.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | {{ page.title }} 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | {% include header.html %} 21 | 22 |
23 |
24 | {{ content }} 25 |
26 |
27 | 28 | {% include footer.html %} 29 | 30 | 31 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: baseof 3 | --- 4 | 5 | 6 |
7 | 15 |
16 |

{{ page.title}}

17 | 18 |
19 | {{ content }} 20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /_layouts/home.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: baseof 3 | --- 4 | 5 | {{ content }} 6 | -------------------------------------------------------------------------------- /_layouts/page.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: baseof 3 | --- 4 | 5 | 6 |
7 | 15 |
16 |

{{ page.title}}

17 | 18 |
19 | {{ content }} 20 |
21 |
22 |
23 | -------------------------------------------------------------------------------- /_lesson_plans/intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: A Very Brief Intro To Rust 4 | nav_order: 1 5 | --- 6 | 7 | # A Very Brief Intro To Rust 8 | 9 | - Time: 3-3.5 hours 10 | - Requirements: Projector, Whiteboard, Laptops, Wifi 11 | 12 | This workshop module is a great way to kick off a RustBridge event. 13 | 14 | ## Goals 15 | 16 | - Introduce Rust concepts and syntax 17 | - Relate Rust to other programming languages 18 | - Get students familiar with the compiler workflow through small exercises 19 | 20 | ## Agenda 21 | 22 | - Introductions (20min) 23 | - Instructors 24 | - Students: 25 | - Name 26 | - Pronouns 27 | - Where are you from 28 | - Experience in programming 29 | - Preferred programming languages 30 | - Presentation: https://intro.rustbridge.com (2hr 40min) 31 | - Introduction to Rust, Cargo, and Project Setup (20min) 32 | - Syntax and Concepts that are similar to other languages (30min) 33 | - Rustlings Break! (1hr) 34 | - https://github.com/rust-lang/rustlings 35 | - Group Review (10min) 36 | - Syntax and Concepts that are Rust specific (40min) 37 | - What to learn next and how (10min) 38 | - Summary and Questions (10min) 39 | -------------------------------------------------------------------------------- /_sass/main.sass: -------------------------------------------------------------------------------- 1 | $orange: #d45c19 2 | $darkorange: #c10000 3 | 4 | @font-face 5 | font-family: 'vampiro_oneregular' 6 | src: url('/assets/font/vampiroone_regular_macroman/VampiroOne-Regular-webfont.woff') format('woff') 7 | font-weight: normal 8 | font-style: normal 9 | 10 | body 11 | font-family: sans-serif 12 | hyphens: auto 13 | 14 | 15 | .vampiro 16 | font-family: 'vampiro_oneregular' 17 | 18 | .bm-darken 19 | mix-blend-mode: darken 20 | 21 | 22 | .header 23 | overflow: hidden 24 | 25 | .header__title 26 | //font-size: 6vw 27 | a 28 | text-decoration: none 29 | 30 | a 31 | color: currentColor 32 | text-decoration: underline 33 | text-decoration-color: $orange 34 | text-decoration-thickness: 2px 35 | transition: color 200ms ease, text-decoration-thickness 200ms ease 36 | &:hover, 37 | &:active 38 | text-decoration: none 39 | color: $orange 40 | 41 | .sidebar, 42 | .footer 43 | a 44 | text-decoration: none 45 | font-weight: 400 46 | 47 | .props 48 | background-color: $orange 49 | color: white 50 | 51 | 52 | .logo 53 | transform: translate(7rem, 0.6rem) scale(2) 54 | -------------------------------------------------------------------------------- /assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/favicon.png -------------------------------------------------------------------------------- /assets/font/vampiroone_regular_macroman/SIL Open Font License.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 by Sorkin Type Co (www.sorkintype.com), with Reserved Font Name 'Vampiro' 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL 5 | 6 | ----------------------------------------------------------- 7 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 8 | ----------------------------------------------------------- 9 | 10 | PREAMBLE 11 | The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. 12 | 13 | The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. 14 | 15 | DEFINITIONS 16 | "Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. 17 | 18 | "Reserved Font Name" refers to any names specified as such after the copyright statement(s). 19 | 20 | "Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). 21 | 22 | "Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. 23 | 24 | "Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. 25 | 26 | PERMISSION & CONDITIONS 27 | Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: 28 | 29 | 1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. 30 | 31 | 2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. 32 | 33 | 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. 34 | 35 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. 36 | 37 | 5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. 38 | 39 | TERMINATION 40 | This license becomes null and void if any of the above conditions are not met. 41 | 42 | DISCLAIMER 43 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. -------------------------------------------------------------------------------- /assets/font/vampiroone_regular_macroman/VampiroOne-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/font/vampiroone_regular_macroman/VampiroOne-Regular-webfont.woff -------------------------------------------------------------------------------- /assets/font/vampiroone_regular_macroman/stylesheet.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'vampiro_oneregular'; 3 | src: url('VampiroOne-Regular-webfont.eot'); 4 | src: url('VampiroOne-Regular-webfont.eot?#iefix') format('embedded-opentype'), 5 | url('VampiroOne-Regular-webfont.woff2') format('woff2'), 6 | url('VampiroOne-Regular-webfont.woff') format('woff'), 7 | url('VampiroOne-Regular-webfont.ttf') format('truetype'), 8 | url('VampiroOne-Regular-webfont.svg#vampiro_oneregular') format('svg'); 9 | font-weight: normal; 10 | font-style: normal; 11 | 12 | } 13 | 14 | -------------------------------------------------------------------------------- /assets/img/RustBridgeBerlin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/RustBridgeBerlin.png -------------------------------------------------------------------------------- /assets/img/RustBridge_clean.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/RustBridge_clean.png -------------------------------------------------------------------------------- /assets/img/rb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rb.jpg -------------------------------------------------------------------------------- /assets/img/rb.jpg~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rb.jpg~ -------------------------------------------------------------------------------- /assets/img/rb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rb.png -------------------------------------------------------------------------------- /assets/img/rust-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rust-bg.png -------------------------------------------------------------------------------- /assets/img/rust-logo-blk.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /assets/img/rustbridge.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustbridge.jpg -------------------------------------------------------------------------------- /assets/img/rustbridge.original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustbridge.original.jpg -------------------------------------------------------------------------------- /assets/img/rustbridge1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustbridge1.jpg -------------------------------------------------------------------------------- /assets/img/rustbridge1.original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustbridge1.original.jpg -------------------------------------------------------------------------------- /assets/img/rustday.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustday.jpg -------------------------------------------------------------------------------- /assets/img/rustday.original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/rustday.original.jpg -------------------------------------------------------------------------------- /assets/img/wocintech.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/wocintech.jpg -------------------------------------------------------------------------------- /assets/img/wocintech.original.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustbridge/website/49697a5755e8269a217f632620837ceb1a92911c/assets/img/wocintech.original.jpg -------------------------------------------------------------------------------- /assets/js/search-data.json: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | { 4 | {% for page in site.html_pages %}{% if page.search_exclude != true %}"{{ forloop.index0 }}": { 5 | "id": "{{ forloop.index0 }}", 6 | "title": "{{ page.title | replace: '&', '&' }}", 7 | "content": "{{ page.content | markdownify | strip_html | escape_once | remove: 'Table of contents' | remove: '```' | remove: '---' | replace: '\', ' ' | normalize_whitespace }}", 8 | "url": "{{ page.url | absolute_url }}", 9 | "relUrl": "{{ page.url }}" 10 | }{% unless forloop.last %},{% endunless %} 11 | {% endif %}{% endfor %} 12 | } 13 | -------------------------------------------------------------------------------- /chapters.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: RustBridge Chapters 4 | nav_order: 2 5 | permalink: /chapters 6 | --- 7 | 8 | 18 | 19 | 20 | Interested in organizing your own local chapter? [Read more](/organizing/chapter) 21 | -------------------------------------------------------------------------------- /code-of-conduct.de.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Verhaltenskodex 4 | permalink: /de/conduct 5 | parent: Code of Conduct 6 | --- 7 | 8 | # RustBridge-Verhaltenskodex 9 | 10 | _(auf [Englisch](/conduct))_ 11 | 12 | ## Verhalten 13 | 14 | - Wir engagieren uns, um eine freundliche, sichere und willkommende Umgebung für uns alle, unabhängig von dem Erfahrungsgrad, Gender-Identität sowie Gender-Ausdruck, sexuelle Ausrichtung, Unvermögen, Aussehen, Körpergröße, Rasse, Muttersprache, Abstammung, Relition, Nationalität, Betriebssystem, oder vergleichbare Eigenschaften, zu schaffen. 15 | - Bitte vermeide es, offenkundig sexuelle Beleidigungen oder andere Namen, die von einer solchen freundlichen, sicheren und willkommenden Umgebung abhalten würden. 16 | - Bitte sei freundlich und zuvorkommend. Es gibt keinen Grund, gemein oder unhöflich zu sein. 17 | - Respektiere, dass verschiedene Personen verschiedene Meinungen haben, und dass jedes Design oder jedes Implementationsdetail einen Abtausch und verschiedene andere Kosten mit sich bringt. Es gibt meistens keine richtige Antwort. 18 | - Bitte beschränke unstrukturierte Kritik auf ein Minimum. 19 | - Wir werden dich von jeder Interaktion ausschließen, falls du jemanden beleidigst, erniedrigst oder belästigst. Das ist kein willkommenes Verhalten hier. Wir interpretieren den Begriff "Belästigung" als übereinstimmend mit der Definition in dem Citizen Code of Conduct; wenn es dir unklar ist, was der Begriff alles beinhaltet, les bitte die verlinkte Definition. Insbesondere tolerieren wir kein Verhalten, das Personen aus sozial marginalisieren Gruppen ausschließt. 20 | - Private Belästigung ist auch unakzeptabel. Egal, wer du bist, falls du dich von einem Community-Mitglied belästigt fühlst oder fühltest, lass es uns bitte sofort wissen, indem du eine organisierende Person kontaktierst. Ob du regulär zum Projekt beiträgst oder neu bist, wir wollen, dass diese Community ein sicherer Platz für dich ist und wir helfen dir dabei. 21 | - Gleichfalls ist jedwedes Spammen, Trollen, Flamen, Baiten oder anderes aufmerksamkeitstehlendes Verhalten nicht erwünscht. 22 | - Bitte frage niemanden auf einem Event auf ein Date aus. 23 | - Falls es bei einem Event zu wenig Platz gibt, kannst du das Event selbst replizieren, damit es insgesamt mehr Plätze gibt. 24 | - Alle Lehr- und Lernmaterialien sind und werden immer source-available und kostenlos sein. 25 | 26 | ## Moderation 27 | 28 | Im Folgenden sind die Regeln aufgelistet, nach denen der Verhaltenskodex geltend gemacht wird. Falls du denkst, dass etwas moderiert werden muss, kontaktiere bitte eine organisierende Person oder ein Team-Mitglied. 29 | 30 | - Bemerkungen, die den Verhaltenskodex verletzen (darunter gelten belästigende, oppressive, ausschließende und verletzende Bemerkungen), sind nicht erlaubt. Schimpfen ist erlaubt, aber nie einer anderen Person gegenüber, und schon gar nicht auf eine verhassende Weise. 31 | - Bemerkungen, die organisierende Personen unangebracht finden, egal ob sie im Verhaltenskodex aufgeführt sind, sind auch nicht erlaubt. 32 | - Organisierende Personen werden zuerst auf solche Bemerkungen mit einer Warnung reagieren. 33 | - Falls die Warnung nicht befolgt wird, wird die Person "gekickt", d.h. von dem Event suspendiert. 34 | - Falls die Person zurückkommt und weiterhin Ärger verursacht, wird ggf. die Polizei gerufen und/oder sie wird verbannt, d.h. auf unbestimmte Zeit ausgeschlossen. 35 | - Organisierende Personen können nach ihrem Ermessen die Verbannung einer Person aufheben ("unbannen"), falls es ein erster Verstoß war und die Person der betroffenen Partei eine ernsthafte Entschuldigung zukommen lässt. 36 | 37 | In der Rust-Community setzen wir uns zum Ziel, immer den extra Schritt zu machen, um auf uns gegenseitig aufzupassen. Versuch nicht nur, technisch unanfechtbar zu sein, versuch auch, dein bestes Selbst zu sein. Vor allem solltest du versuchen, nicht mit offensiven oder sensiblen Themen herumzukaspern, besonders, wenn sie nichts zur Diskussion beibringen. Das führt meistens zu unnötigen Auseinandersetzungen, verletzten Gefühlen und gebrochenem Vertrauen; und noch schlimme, kann es dazu führen, dass Personen sich komplett aus der Community zurückziehen. 38 | 39 | Und wenn jemand ein Problem mit etwas hat, was du gesagt oder getan hast, widersteh dem Drang, defensiv zu agieren. Hör einfach mit dem auf, was die andere Person bei dir anklagt und entschuldige dich. Sogar, wenn du denkst, falsch interpretiert oder beschuldigt worden zu sein, stehen die Chancen gut, dass es irgendetwas gibt, was du besser kommuniziert hätten könntest — behalte im Hinterkopf, dass es deine Aufgabe ist, dass deine Rustacean-Gefährten komfortabel mit dir sind. Jeder will grundsätzlich miteinander auskommen, und hier sind wir alle prinzipiell zuerst, weil wir uns über coole Technologien austauschen wollen und lernen wollen. Solange du das Vertrauen von Leuten erntest, wird du sehen, dass sie gute Absichten annehmen und dir auch vergeben. 40 | 41 | Die Vollstreckungsregeln, die hier aufgelistet sind, sind gültig für alle offiziellen RustBridge-Events und Kommunikationsmittel. Das beinhaltet die Discord-Kanäle (https://discord.gg/rust-lang), und GitHub-Repositories unter rustbridge und rust-lang. 42 | 43 | _Angepasst von dem Rust Code of Conduct und dem BridgeFoundry Code of Conduct._ 44 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Code of Conduct 4 | nav_order: 6 5 | permalink: /conduct 6 | has_children: true 7 | --- 8 | 9 | # RustBridge Code of Conduct 10 | 11 | _(in [German](/de/conduct))_ 12 | 13 | ## Conduct 14 | 15 | - We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, native language, age, religion, nationality, operating system choice, or other similar characteristic. 16 | - Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all. 17 | - Please be kind and courteous. There’s no need to be mean or rude. 18 | - Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer. 19 | - Please keep unstructured critique to a minimum. 20 | - We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term “harassment” as including the definition in the Citizen Code of Conduct; if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don’t tolerate behavior that excludes people in socially marginalized groups. 21 | - Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the organizers immediately. Whether you’re a regular contributor or a newcomer, we care about making this community a safe place for you and we’ve got your back. 22 | - Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome. 23 | - Please do not ask anyone on a date. 24 | - If there is too little space at an event, you are free to replicate the event, such that more opportunities may be available. 25 | - All curricula and organizing materials are and will always be source-available and free. 26 | 27 | ## Moderation 28 | 29 | These are the policies for upholding our community’s standards of conduct. If you feel that a thread needs moderation, please contact the RustBridge team. 30 | 31 | - Remarks that violate the RustBridge standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.) 32 | - Remarks that organizers find inappropriate, whether listed in the code of conduct or not, are also not allowed. 33 | - Organizers will first respond to such remarks with a warning. 34 | - If the warning is unheeded, the user will be suspended from the event. 35 | - If the user comes back and continues to make trouble, local authorities may be called and a permanent, organization-wide ban will be put into effect. 36 | - Organizers may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology. 37 | 38 | In the RustBridge community we strive to go the extra step to look out for each other. Don’t just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they’re off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely. 39 | 40 | And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make your fellow Rustaceans comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about and learn cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust. 41 | 42 | The enforcement policies listed above apply to all official RustBridge events and venues; including Discord channels (https://discord.gg/rust-lang), and GitHub repositories under rustbridge and rust-lang. 43 | 44 | _Adapted from the Rust Code of Conduct and the BridgeFoundry Code of Conduct._ 45 | -------------------------------------------------------------------------------- /css/main.scss: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | @import "main" 5 | -------------------------------------------------------------------------------- /index.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | title: Home 4 | nav_order: 1 5 | permalink: / 6 | --- 7 | 8 | # We're here to teach you Rust! 9 | {: .mt0 .f1 .lh-title } 10 | 11 | RustBridge is a workshop focused on getting underrepresented people with a 12 | background in another programming language to learn Rust and join the community. 13 | {: .f2 .lh-copy } 14 | 15 | ## About RustBridge 16 | {: .f2 .lh-title .mt5 } 17 | 18 | RustBridge workshops are held all around the world, and specifically targeted 19 | towards underrepresented groups in technology. The first RustBridge workshop was 20 | held at [RustFest Berlin](https://2016.rustfest.eu/), and since then, it's 21 | become a tradition of sorts to hold a workshop at every Rust conference 22 | thereafter. Independently, RustBridge workshops have been held in 5 continents. 23 | {: .f4 .lh-copy} 24 | 25 | ## RustBridge near you? 26 | {: .f2 .lh-title .mt5 } 27 | 28 | RustBridge is currently transitioning to organizing in chapters. These are groups of people based in a particular area. 29 | {: .f4 .lh-copy} 30 | 31 | {% include chapters-list.html %} 32 | 33 | See our documentation on [organizing a chapter](/organizing/chapter/) for more information around starting and managing your own chapter. 34 | {: .f4 .lh-copy} 35 | -------------------------------------------------------------------------------- /learn.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Learn with RustBridge 4 | nav_order: 3 5 | --- 6 | 7 | ## Curriculum 8 | 9 | The goal of RustBridge is threefold: 10 | 11 | - get you up and running with a great Rust development environment 12 | - introduce you to Rust syntax and programming concepts 13 | - give you a small, personal, extendable, and shareable project 14 | 15 | All RustBridges are a little different! Be sure to check the details of your local RustBridge for specific details. 16 | 17 | RustBridge is an all day event (~6-8hours, with breaks and meals of course!). 18 | 19 | The first portion focuses on Rust language syntax and semantics. Extra effort is made to relate Rust concepts to programming concepts in other languages, particularly popular scripting languages such as JavaScript or Ruby. This part consists of an interactive [presentation](https://intro.rustbridge.com) followed by guided and self-directed practice using [Rustlings](https://github.com/rust-lang/rustlings). 20 | 21 | The second portion leads students in a hands-on project: building a small [website](https://rust-together.herokuapp.com/) in Rust. Depending on your comfort and sense of adventure you can work more or less independently during this part- either heading off on your own, or pairing with a partner (or three!). The project is designed to be extendable, so no matter your pace, there's always something more to do! 22 | -------------------------------------------------------------------------------- /lesson-plans.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Lesson Plans 4 | nav_order: 5 5 | has_children: true 6 | permalink: /lesson-plans 7 | --- 8 | 9 | This aims to document all of the possible lesson plans, or curriculums that you 10 | could run at a RustBridge event. 11 | 12 | 17 | -------------------------------------------------------------------------------- /optimise-images.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import glob, os, subprocess, sys 4 | 5 | status, _ = subprocess.getstatusoutput('convert -h') 6 | 7 | if status != 1: 8 | print("`convert` not found. ImageMagick is required to to optimise images.") 9 | print("") 10 | sys.exit() 11 | 12 | for filename in glob.glob('assets/img/*.original.jpg'): 13 | directory = os.path.dirname(filename) 14 | # foo.original.jpg -> foo.jpg 15 | basename = os.path.splitext(os.path.splitext(filename)[0])[0] 16 | new_name = f'{basename}.jpg' 17 | 18 | print(f'Processing {filename} -> {new_name}') 19 | 20 | # Adapted from https://stackoverflow.com/questions/7261855/recommendation-for-compressing-jpg-files-with-imagemagick 21 | command = [ 22 | 'convert', 23 | '-strip', 24 | '-interlace', 'Plane', 25 | '-gaussian-blur', '0.05', 26 | '-quality', '85%', 27 | # 'x1080' will scale the image's height to 1080px while maintaining the 28 | # current aspect ratio. 29 | '-resize', 'x1080', 30 | filename, 31 | new_name, 32 | ] 33 | 34 | subprocess.run(command, check=True) 35 | 36 | print("All images optimised ☀️") 37 | -------------------------------------------------------------------------------- /organizing/before.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Before the Event 4 | parent: Organizing a RustBridge 5 | nav_order: 1 6 | --- 7 | 8 | # Before the Event 9 | 10 | ## Making initial plans 11 | 12 | With organizing any event, it's usually good to have an overview of what you 13 | want to accomplish before setting out to do the first steps. That means that you 14 | should be clear where, (roughly) when and with who you want to organize your 15 | event. It's usually better if you have an organizing/teaching team of at least 16 | two, or more depending on the size of your audience. Also if you have a rough 17 | date and a potential venue, it might be good to give them a call before doing 18 | anything concrete. 19 | 20 | ## Getting things scheduled 21 | 22 | First things first, settle on a date. This can be during the work week, but keep 23 | in mind that it's usually an all-day event, so people's capabilities might be 24 | limited. Make sure that nothing else is happening at your chosen date (like a 25 | world cup finale in your city, for example). 26 | 27 | After that, probably the most important step is to secure a venue for your date. 28 | Try asking around, be it on Twitter, at meetups, or in other local circles. If 29 | you live in a bigger city, there's usually some companies who would be happy to 30 | sponsor the venue for your event. 31 | 32 | Phew, that's the two most important things done! Now's probably the point at 33 | which you should post your meetup in our [GitHub issue 34 | tracker](https://github.com/rustbridge/organizing). If you want to, 35 | or if you're unsure about anything, you can contact us privately before. Once 36 | you're ready, post a new issue in the rustbridge/organizing GitHub repository. It 37 | doesn't have to be an incredibly detailed issue, it just needs the time and the 38 | name of an organizer (maybe you?). For this purpose, we provide a handy GitHub 39 | issue template that includes a bunch of checklists you can fill out as the event 40 | draws closer. A venue is also recommended, but if you don't 41 | have one at this stage, we have ways to help you with that. 42 | 43 | ## Getting people to sign up 44 | 45 | Because RustBridge events are aimed towards underrepresented minorities, you 46 | might want to consider not making it a "everyone can come without registration" 47 | type of event. Not only does it make some people feel unwell, but we've had 48 | cases in the past where events got interrupted by third parties with bad intent. 49 | For that same reason, consider not making the venue location public, especially 50 | if it's a publicly accessible venue. 51 | 52 | We usually use [Bridge Troll](https://bridgetroll.org) to host our events. 53 | Bridge Troll also handles signups, checkins, volunteers and a bunch of other 54 | super helpful stuff. If you have a registered chapter on Bridge Troll, you can 55 | start planning events, if not, please talk to us about getting it on there! 56 | 57 | If you want to spread the word about your event, we can definitely help you with 58 | that. We have multiple channels over which we can announce your event, so feel 59 | free to talk to us regarding that. 60 | 61 | ## As the event approaches 62 | 63 | Getting nervous yet? That's fine, everyone does! Here's a couple of things that 64 | you might want to consider as your event draws closer: 65 | 66 | - Catering. People probably want lunch, so if the venue offers catering, great! 67 | If not, no worries, you can always just tell the group to go and organize 68 | lunch on their own. 69 | - Drinks. Some venues have a fridge with drinks, if not, you might just want to 70 | get some water and cups from the local supermarket. 71 | -------------------------------------------------------------------------------- /organizing/chapter.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Chapter Organization 4 | nav_order: 8 5 | parent: Organizing a RustBridge 6 | --- 7 | 8 | # Chapter Organization 9 | 10 | So you've found a couple of like-minded people, and you're committed to hosting 11 | (semi-)regular RustBridge events in your area? Great! You can follow this guide 12 | to set up your own chapter. 13 | 14 | ## What benefits are there in a chapter? 15 | 16 | The main thing is that being a chapter formally makes you a part of the 17 | RustBridge project. This connects you closer with the RustBridge team, but 18 | also the Rust project as a whole. You will receive support where we can give it, 19 | and at the very least your workshops will gain more exposure. You will also get 20 | a public and private discussion channel on our [Discord][rbdiscord]. 21 | 22 | ## Starting a chapter 23 | 24 | Firstly, you should contact us, the RustBridge team. There's multiple ways to go 25 | about this: 26 | 27 | - You can email `rustbridge@rust-lang.org` 28 | - You can talk to us on the `#rustbridge` channel on the [Rust 29 | Discord][rustdiscord] 30 | - You can also talk to us on the [RustBridge Discord][rbdiscord] 31 | - You can message Marisa directly, via [email](mailto:mokou@posteo.de), or on 32 | Discord (marisa#0229) 33 | 34 | We'll help you with setting up your chapter, your Discord channel and your first 35 | workshop. From here on out, what you do next can vary greatly, but there's 36 | usually a few common points: 37 | 38 | ### Get your chapter on the website 39 | 40 | You can open your own Pull Request on the 41 | [repository](https://github.com/rustbridge/website), but we can do it for you, 42 | too. 43 | 44 | ### Get your chapter on BridgeTroll 45 | 46 | [BridgeTroll](https://bridgetroll.org) is what we usually use to plan events. 47 | You can create a new 48 | [issue](https://github.com/railsbridge/bridge_troll/issues/new) asking for your 49 | chapter to be added to BridgeTroll, after which you can officially organize your 50 | events under that chapter name on it. 51 | 52 | ### Start planning your event if you haven't yet! 53 | 54 | This goes without saying, but now that you're official, it's time to put up an 55 | awesome event! We have other guides on how to do that, starting with [things to 56 | do before the event](/organizing/before). 57 | 58 | [rustdiscord]: https://discord.gg/rust-lang 59 | [rbdiscord]: https://discord.gg/DpBApCd 60 | -------------------------------------------------------------------------------- /organizing/coaching-advice.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Coaching Advice 4 | nav_order: 7 5 | parent: Organizing a RustBridge 6 | --- 7 | 8 | # Coaching Advice 9 | 10 | The following material isn't meant as rules but as guidelines. Feel free to pick and choose advice from different points as you see fit for the mentors and student audience alike. The material also aims for an explorative learning approach (sometimes called *the hard way*). This puts emphasis on letting students discover things by themselves, then helping them through what it means. 11 | 12 | --- 13 | 14 | There is a fundamental difference between a **coach** and a **teacher**. The goal isn't to stand in front of a class and lecture them about Rust but to stand *beside* them and help them discover the language by themselves. Some things to consider are specific to teaching programming (or other tech related fields) and having experience with that is always a plus. 15 | 16 | - Stand on the sidelines but be ready to help 17 | - Focus on the students 18 | - Have sympathy and patience for their (in-)abilities 19 | - Be positive and encouraging 20 | - It's okay to make mistakes 21 | - And take breaks if they get frustrated! 22 | - Leave time for experimentation and "playing around" 23 | - If people are getting "off the path", don't force them back on! 24 | - Make sure people are having fun 25 | 26 | ### General teaching advice 27 | 28 | Generally good advice when teaching anything (even in a more hands-off approach): 29 | 30 | - Create a friendly and welcoming environment 31 | - Use students' names and pronouns 32 | - Smile at them, make eye contact 33 | - Admit if you don't know something; that's okay! 34 | - When explaining, try to avoid jargon, especially on tech subjects 35 | - Don't assume pre-existing knowledge 36 | - Try to rephrase things in case of misunderstandings 37 | - Don't accept students self-deprecation 38 | - Tell them that they can do it 39 | - Congratulate them on achievements 40 | - Let people show off their work if they want to 41 | 42 | ### Dealing with questions 43 | 44 | Be sure to be engaged with the students problems. Just because someone isn't asking questions that doesn't mean they're not having problems. 45 | 46 | - They might be too afraid to ask. 47 | - Check in with people once in a while and ask "Hey, how is it going? Anything I can help you with?" 48 | - This helps shy learners, builds connection and increass engagement 49 | - Alternatively: Sit next to them and talk about what they are doing. 50 | - Generally encourage the asking of questions 51 | - Building the right atmosphere is important but also sometimes difficult 52 | - Emphasize that there's no such thing as a "dumb" question 53 | - Positively respond to questions 54 | - If a lot of people are struggling with a certain subject, be sure to adjust your material 55 | 56 | ### Pacing 57 | 58 | - This isn't about you, it's about the students; go at their pace 59 | - Talk slowly, leave space after saying something 60 | - When answering questions be sure to leave them time to think about it. Then make sure they understood it 61 | 62 | 63 | ### **Don'ts** 64 | 65 | - Follow the code of conduct of your event, **be an example that students can follow!** 66 | - This means no harassment, no sexual advances, no slurs or violating participants boundries 67 | - If you see any of this happening, confront the offenders immediately. This also counts for event staff. 68 | - Don't roll your eyes at questions, don't be annoyed by misunderstanding, don't be impatient 69 | - Don't start debates about programming languages, toolkits, etc. 70 | - Avoid being opinionated 71 | - **Don't touch their keyboards!** 72 | -------------------------------------------------------------------------------- /organizing/during.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: During the Event 4 | parent: Organizing a RustBridge 5 | nav_order: 2 6 | --- 7 | 8 | # During the Event 9 | 10 | ## Teacher/Volunteer training 11 | 12 | If you haven't had a volunteer training on a separate day, consider inviting all 13 | of your volunteers an hour/half an hour early to go over some important points 14 | and to maybe go through the curriculum with them. 15 | 16 | ## Nice things to have 17 | 18 | - Wifi details publicly visible 19 | - The workshop hashtag so people can tweet about it if they want 20 | - Directions to the bathrooms 21 | - Food should be prepared and put out if you're serving breakfast 22 | 23 | ## Check-in 24 | 25 | Check-in can be done through Bridge Troll. You might want to hand out name tags. 26 | It's useful to have volunteers do this so you're free for other things. 27 | 28 | ## During the opening 29 | 30 | Be sure to tell people specific info about the area where you're hosting, how to get 31 | home, etc. 32 | -------------------------------------------------------------------------------- /organizing/handling-money.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Handling Money 4 | nav_order: 3 5 | parent: Organizing a RustBridge 6 | --- 7 | 8 | # Handling Money 9 | 10 | RustBridge should be free for attendees. 11 | 12 | It is possible to run an event on a very small budget. 13 | The two most common things that cost money are renting space and providing food for attendees. 14 | 15 | Approach local companies or universities for sponsorship. 16 | They might give you a venue for free or for a very small amount of money. 17 | If you can get a venue sponsor you already saved yourself what could be your biggest cost. 18 | 19 | Food for attendees is another big cost. Try to find a sponsor to cover that. 20 | Remember, sponsors get publicity for their businesses or organizations out of sponsorship – which can mean an awful lot to them! But if all else fails, if you’ve got a space but no lunch, ask your participants to bring their own lunch. 21 | Additionally, you can also make a list of local restaurants and supermarkets nearby. Look for things in walking distance (5-10 minutes of walking at best). 22 | Make sure to communicate the plan to attendees before the event, so they can prepare for it. 23 | 24 | If you require some money but did not find any sponsors, you should contact the [Rust Community Team](mailto:community@rust-lang.org). 25 | They might be able to connect you to potential sponsors or get a small budget. 26 | Get in contact as early as possible. 27 | 28 | The Community Team is also a good contact to get some swag such as stickers. 29 | Keep in mind that swag is a nice-to-have, not a must. 30 | 31 | You can run a successful event without a budget. 32 | Focus on the learnings first. 33 | -------------------------------------------------------------------------------- /organizing/organizing.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: page 3 | title: Organizing a RustBridge 4 | nav_order: 4 5 | has_children: true 6 | permalink: /organizing 7 | --- 8 | 9 | Organizing a RustBridge event is simpler than you might think! A RustBridge 10 | event generally follows four rules: 11 | 12 | - The event has to be free 13 | - The event has to be targeted towards underrepresented minorities in Tech 14 | - The event follows some kind of curriculum 15 | - The event has to follow the [RustBridge Code of Conduct](https://rustbridge.com/conduct) 16 | 17 | But apart from that, you can use any venue, use any curriculum, with as many 18 | people as you want! 19 | 20 | ## Our Chapter Structure 21 | 22 | RustBridge is currently transitioning to organizing in _chapters_. These are 23 | groups of people based in a particular area (for example, Berlin in Germany or 24 | La Paz in Bolivia, but can also be broader, like the DFW area in the US). 25 | 26 | A chapter should consist of at least an organizer team that manages the chapter, 27 | its events, and communication with the main RustBridge team. This organizer team 28 | doesn't have to hit any specific size, but we recommend more than 2 people and 29 | less than 10 people. 30 | 31 | See our documentation on [organizing a chapter](/organizing/chapter) for more 32 | information around starting and managing your own chapter. 33 | 34 | ## Materials 35 | 36 | We provide materials specifically for people 37 | who have never organized a RustBridge event before, so maybe you'd want to check 38 | those out... 39 | -------------------------------------------------------------------------------- /organizing/outreach/hubs.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Hubs 4 | nav_order: 2 5 | parent: Outreach 6 | --- 7 | 8 | ``` 9 | My name is [NAME], and I'm writing you on behalf of the RustBridge program. RustBridge is an inclusive and accessible event designed to teach newcomers to systems programming and programming in general about the programming language Rust. We, the [LOCAL ORGANIZING GROUP], are interested in reaching more learners, and would like to collaborate with you to host a free event for members of your institution and the general public. 10 | 11 | RustBridge follows the BridgeFoundry format, which is used by RailsBridge and RubyBridge as well and has proven to be especially effective around learners who come from a diverse and non-traditional background. We have organized RustBridge events at universities and university-related events before, like the HackIllinois, University of Waterloo, the Canadian University Software Engineering Conference (CUSEC), and we think that it would be a great fit for [HUBNAME] as well. 12 | 13 | We are proposing would be [...] 14 | We have three goals for these kinds of events: 15 | 16 | 1. to get learners up and running with a Rust development environment, 17 | 2. to teach them the basics of the Rust language and ecosystem, and 18 | 3. to provide them with their own personal and extendable project that they can work on after they finish. 19 | 20 | We make an extra effort to relate programming concepts in Rust to similar concepts in other languages, in order to make them easier to understand. 21 | 22 | Broadly, the event can be split into two parts: An interactive presentation about the core language concepts of Rust, using http://exercism.io as a platform. This way, learners can learn at their own pace using a well-known curriculum. The second part leads learners to build their own small website in Rust. This way, every learner can work at their own pace if they want, but still collaborate efficiently. 23 | 24 | ### What We Offer (Incomplete) 25 | - Mentors/teachers for the workshop 26 | - Workshop materials 27 | - Food and drinks 28 | - [...] 29 | 30 | ### What We Require (Incomplete) 31 | - Venue for [specify expected number of learners] 32 | - Main and standby power 33 | - Internet ([minimum speed requirement?) 34 | - Food and drinks, if possible 35 | - [...] 36 | 37 | We hope you will consider our proposal! If you need any more information, feel free to reach out to us under this email address. 38 | 39 | Thank you so much for your time, we hope to hear from you soon. 40 | 41 | [NAMES OF ORGANIZERS] 42 | ``` 43 | -------------------------------------------------------------------------------- /organizing/outreach/outreach.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Outreach 4 | nav_order: 6 5 | has_children: true 6 | permalink: /organizing/outreach 7 | parent: Organizing a RustBridge 8 | --- 9 | 10 | # Outreach 11 | 12 | One of the key elements that makes RustBridge a RustBridge is the dedicated 13 | outreach and focus on involving people from underrepresented background in tech. 14 | 15 | In this directory, you'll find strategies for doing outreach to these groups, as 16 | well as templates for communicating to groups and organizations. 17 | -------------------------------------------------------------------------------- /organizing/outreach/universities.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Universities 4 | nav_order: 1 5 | parent: Outreach 6 | --- 7 | 8 | ``` 9 | My name is [NAME], and I'm writing you on behalf of the RustBridge program. RustBridge is an inclusive and accessible event designed to teach newcomers to systems programming and programming in general about the programming language Rust. We, the [LOCAL ORGANIZING GROUP], are interested in reaching more learners, and would like to collaborate with your university to perhaps host an event for your students. 10 | 11 | The reason why we think the RustBridge would work in your university is because RustBridge, and other similar programs, like RubyBridge and NodeTogether, have proven to be especially effective around learners who come from a diverse and non-traditional background. We have organized RustBridge events at universities and university-related events before, like the University of Waterloo, the Canadian University Software Engineering Conference (CUSEC), or HackIllinois, and we think that it would be a great fit for your university as well. 12 | 13 | The event that we are proposing would be an all-day event, meaning it would span about 6-8 hours. We have three goals for these kinds of events: To get learners up and running with a Rust development environment, to teach them the basics of the Rust language and ecosystem, and to provide them with their own personal and extendable project that they can work on after they finish. We make an extra effort to relate programming concepts in Rust to similar concepts in other languages, in order to make them easier to understand. 14 | 15 | Broadly, the event can be split into two parts: An interactive presentation about the core language concepts of Rust, using http://exercism.io as a platform. This way, learners can learn at their own pace using a well-known curriculum. The second part leads learners to build their own small website in Rust. This way, every learner can work at their own pace if they want, but still collaborate efficiently. 16 | 17 | We hope you will consider our proposal! If you need any more information, feel free to reach out to us under this email address. 18 | 19 | Thank you so much for your time, we hope to hear from you soon. 20 | 21 | [NAMES OF ORGANIZERS] 22 | ``` 23 | -------------------------------------------------------------------------------- /organizing/questions.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Further Questions 4 | parent: Organizing a RustBridge 5 | nav_order: 8 6 | --- 7 | 8 | # Further Questions 9 | 10 | It's unlikely that this document will ever reflect everything that goes into a 11 | RustBridge event, so if you have questions, we'll do our best to help you out. 12 | 13 | If you need help from the RustBridge team, we're in the #rustbridge Rust Discord 14 | channel, as well as on GitHub. In doubt, just open a new issue on [rustbridge/team](https://github.com/rustbridge/team). 15 | 16 | If you need help regarding spreading the word, finding a venue, or finding other 17 | interested people in your area, the Community Team can probably help you with 18 | that. They're on the #community-team Discord channel as well as at 19 | [community@rust-lang.org](mailto:community@rust-lang.org) via email. 20 | -------------------------------------------------------------------------------- /organizing/social-media.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Social Media 4 | nav_order: 5 5 | parent: Organizing a RustBridge 6 | --- 7 | 8 | # RustBridge Social Media Guide 9 | Social Media can be a very powerful tool to leverage your event, but also to motivate attendees to share their results! Because it’s so powerful, it’s very helpful and sometimes necessary to set concrete rules for usage by not only organizers and teachers, but also attendees. 10 | 11 | 12 | ## Photo Guidelines 13 | 14 | This is the part that is necessary. You want to make sure that your event is governed by a photo taking policy, meaning that you want to ask for people’s *consent* before you take their picture. The same thing goes for attendees taking pictures. 15 | 16 | Assume that every individual person is **not** ok with having their picture taken until you ask them to. The easiest way to do this is to sort this out at the beginning by asking the crowd of attendees if they’re okay with it. HOWEVER, the easiest way is not often the best: Some people are uncomfortable with stating their preference out before a crowd, so consider providing a backchannel where people can inform you of their preference in private. If not everyone okay with photos, *don’t* call them out — tell them that it’s okay, and ask the rest of the group to either be careful with or refrain from taking pictures with people in them altogether. 17 | 18 | 19 | ## Social Media Hashtags 20 | 21 | A cool thing to do is to encourage attendees and teachers to post their learnings or other findings under a hashtag on platforms like Twitter or Instagram. This hashtag should be called `#RustBridgeLOCATION` or `#RustBridgeIDENTIFIER`, so like `#RustBridgeBerlin` or `#RustBridgeDC`. It’s also okay to just post under the `#RustBridge` hashtag, or both! Incentivize tagging posts by offering to retweet them with your event’s account, or the official RustBridge account, but be careful that they don’t violate your photo taking rules, as discussed in the previous section. Additionally, inform attendees that they can DM your account(s) in order to have their post retweeted. 22 | 23 | 24 | ## Social Media Accounts 25 | 26 | If you run a recurring RustBridge event, you might want to consider setting up a separate Social Media account for your event. Twitter is usually the best network to consider for this, although Facebook Pages, if managed correctly, can have a lot of influence, too. Be careful who you give access to the account. A preferred way of sharing access to Twitter accounts is, instead of sharing the password, using [TweetDeck Teams](https://blog.twitter.com/official/en_us/a/2015/introducing-tweetdeck-teams.html), which not only work without a password, but also have different access levels. 27 | 28 | During the event, you can track the hashtags you define and retweet posts accordingly. If you want to, ask people whether it’s okay to retweet their stuff, since some people prefer not to get the exposure. 29 | 30 | For a one-off event, it’s better to just use your personal account (if you want), or send a direct message to the [RustBridge](https://twitter.com/RustBridge) Twitter account to ask them to retweet posts under a certain hashtag (or just a specific post). 31 | 32 | Although nobody will police your content, here's some general guidelines as to what works and what doesn't work: 33 | 34 | - Try and focus on promoting your inclusive work environment 35 | - Don't talk down other programming languages, programmers, tools, anyone in general 36 | - Be positive! 37 | - Only retweet from accounts that you know 38 | 39 | ## Tips & Tricks 40 | 41 | The key to using Social Media in a non-intrusive, but still influential way is to *ask before you take actions that affect other people*. If you need any help, again, you can send a direct message to the aforementioned RustBridge Twitter account, or file an issue under the [rustbridge/team](https://github.com/rustbridge/team) repository. 42 | 43 | -------------------------------------------------------------------------------- /organizing/venue.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Venue Logistics 4 | nav_order: 4 5 | parent: Organizing a RustBridge 6 | --- 7 | 8 | # Venue Logistics 9 | 10 | RustBridge is an interactive event and your space should allow for that. That 11 | means you should have space for people to walk around and people to comfortably 12 | sit in groups. 13 | 14 | Learning works better when having a little space and it's not too noisy. 15 | 16 | Don't stress out about venue details _too_ much, people are great at working 17 | around flaws, as long as you and the attendees are aware. It's the learning 18 | experience that counts. 19 | 20 | ## A venue is a relationship 21 | 22 | Be aware that venues are run by people and you want to be on good terms with 23 | them. If you want to run multiple events and you are happy with a venue, 24 | you totally want to leave a lasting impression. This will make searching 25 | for the next time easier. 26 | 27 | If you want to run regular workshops, make sure you build a couple of contacts. 28 | 29 | ## Qualities of a good venue 30 | 31 | RustBridge is a flexible program, so you are also flexible in a venue. 32 | 33 | A venue for RustBridge should fulfill the following requirements: 34 | 35 | Strong requirements: 36 | * You don't have to pay for it 37 | - Usually, there's some trade involved, for example you promoting the 38 | company owning the venue 39 | * Space for at least 20 people to comfortably sit around tables 40 | * Have a screen or a projector to present things 41 | - This is a must. Unless you have a very small group or there's no other option available, don't take venues without. 42 | * Provides power sockets that can be arranged at the tables 43 | * Check accessibility, especially if access to the venue is step-free 44 | 45 | Important requirements: 46 | * Long events mean that people have to make pauses and step out, see that there is space to retreat. 47 | * Open a little before and after the workshop 48 | * A bare room with rearrangable furniture is preferred 49 | - avoid row seating, but take it if you have nothing else 50 | * Good internet connection, Rust installation is bandwidth-intensive 51 | 52 | Additional things to look out for: 53 | * Have good, warm lighting. Bright light is stressfuland 54 | screens work a little better in not too bright lights. 55 | 56 | All these aren't make or break. You can only have a space for 10? Make 57 | a smaller event. Even some of the strong requirements can be hacked around. 58 | 59 | ## Finding a good venue 60 | 61 | Prefer having a venue with issues over having nothing. If you are in 62 | a place with a notable tech scene, companies often have larger meeting 63 | rooms they give for free to projects. Co-working spaces also often have 64 | event rooms. Universities are also great place, 65 | especially technical universities usually have a good setup. A local youth 66 | centre is also good place to approach. Cities often have 67 | public rooms that are available at reasonable rates. 68 | 69 | Do visit the venue before. It doesn't have to be a long visit, but check 70 | all the things above. Don't just walk through the door, walk through the whole 71 | event. Where you want people to come in, where you want people to set up, 72 | how people should interact. Where do people work, where do they hang out? 73 | Are there steps? 74 | 75 | Ask if the venue has run that style of events before. If not, take their information 76 | about things like internet with a grain of salt: what works for one computer 77 | doesn't necessarily work for 20. 78 | 79 | If you are doing this for the first time, make a check list before, so that 80 | you don't forget anything. 81 | 82 | A common mistake is feeling like you are only in a position of asking, but 83 | you are also providing something to the owner of the venue. You are entitled 84 | to all questions. 85 | 86 | ## Two days before the event 87 | 88 | Send an email to your contact on site with your plan for the venue, so that 89 | they can arrange things and know that you care. 90 | 91 | ## Setting up the venue 92 | 93 | Be at the venue early. 30 minutes is fine, at least an hour is best. This 94 | allows you to fix all issues that might pop up and prepare without stress. You 95 | really don't want to be rearranging the chairs while also handling people coming 96 | in. 97 | 98 | If you got the venue for free, make sure you leave it in an A+ state. Get trash 99 | from the tables, clean up dirt, collect the bottles, rearrange all furniture as 100 | it was before. 101 | 102 | ## Space managers 103 | 104 | If you are running an event, there's probably a space manager from the venue 105 | on site. They are there for solving any of your problems, so feel free to reach 106 | out to them with any questions. Be friendly, but assertive. 107 | 108 | If you want to leave a lasting impression with the manager, be out by the time 109 | you committed to. Unless the space manager says they are going to close after 110 | you, there should be someone sticking around until the venue is in order again. 111 | 112 | It's good practice to thank them for their work and if you want, bring a small 113 | present. 114 | --------------------------------------------------------------------------------