# SymCode - Learning Lounges SymCode is a type of Event where we code-learn together, we code togther and learn from each other. It is a protocol in development, always. ![Process Overview](https://i.imgur.com/NZTGmgf.jpg) # Overview Each event has a project focus. An event can last up to four hours. A project is chosen to work on as a group during these hours and hopefully there will be a larger code repository and a bunch of harvested learnings at the end of the event. Things that are encouraged to bring to the event (that is to say to your computer): * Headset - (Typing and Speech often interfare!) * A local copy of the code repository listed in the invitation to the event and having run the nix-shell command in the repo to have the local dev enviroment set up * Setting up a stream account somewhere (like Twitch/Youtube) to be used in the session * **Snacks / Tea / Coffee** :smile: There is no limit to the number of participants, but methods for dealing with large and small groups. An accopanying open document **(like this one)** is kept alongside the event to harvest learning and keep people up to date with what is happening during the event. # Event structure ## 40 min: Introduction 1. 10 minute check-in, if groups are larger than 5, try to use break-out rooms where possible. 2. 10 minute quick intro to the project being worked on. "Why?" "How?" type stuff. 3. 20 minutes of "What needs to be created next and who is working on what? In this section, people who are going to code, list what it is that they are going to be working on and, if they choose, also post a **link to a feed where others can follow them in their coding** (using something like [twitch](https://www.twitch.tv/) for instance). ## 80 minutes: - Coding & Learning A whole block of coding, where everyone that is interested in actively writing code is doing so and sharing their experience if comfortable with that. Coders would be encouraged to narrate their coding experience. Hopefully there would be different people that work on different parts of the application. This could include things like: * Tests * Front end design * Data integrity - "back-end" * Front end logic and filtering These would naturally need to correspond to the needs of the application being woven. Everyone that is sharing a feed would be incouraged to keep a pen and paper in order to quickly note timestamps in their feeds where they either hit a wall with their code or came through a learning experince. These stamps can be added to the video URLs in the colleborative document after the coding session so that many others can be walked through that piece of learning in the way that it happened. ## 30-60 minutes: Walkthrough of Code & Questions encountered Each collaborator, if willing, shares the code that they have written. Where they came to a stop and/or learnings that happened during coding. ## 45 minutes: Assembly * Organizing the coming together of the different part that has been developed during the coding session *(UI/Testing/Data layer...)* * Getting code merged into updated repository and getting everying running together * If there is time: polish, extend and evolve application.. ## 15 Minutes: Check-out Take five minutes to evaluate what you have learned and hopefully note learnings in the colleborative document for each person. Check-out sharing of learnings, in full group or in break-outs for 10 minutes. ------------------------- # Initial event projects The following event projects would be interesting to try to go through this process with. Included in each event invitation is a cloned repo with a Nix-Shell config to be used in development and a prepared Collaborative Document link. ## MinerSweeper Collaborative "Mine Sweeper" type game. It was developed on the Go prototype version of Holochain and we will intend to re-write the backend in Rust to get it up to speed with the new core. [Original Repo](https://github.com/holochain/minersweeper) ## MailBoox Distributed liberary application. Was barely running when developed during a hackathon in Copenhagen early 2018 on the GO version. Has been updated once to Rust but needs work to get up to date. There are basic buildingblocks of a UI for the application. [Go version repo](https://github.com/zaunders/MailBoox) and [Rust Version repo](https://github.com/zaunders/Mailboox-Rust) ## Dinner Carousel An application to help facilitate community dinners, currently only in design with no code written for any part. [Dinner Carousel repo](https://github.com/zaunders/DinnerCarousel) ## Checkers and chess games From devcamp..