GithubHelp home page GithubHelp logo

devenv's Introduction

Table of Contents

  1. Installing
    1. Windows
    2. Linux
  2. Development
    1. Colaborative editing
    2. Communication
    3. Workflow
    4. Essential Commands

img

This is the docker environment for Sovereign Shop development. It includes other Repos as Git Submodules. These include:

  • modules/doom.d: The doom emacs config directory.
  • moduues/emacs.d: The doom emacs install directory.
  • modules/skyhook: Working repo for the (formerly) EuroZone project, now evolving.
  • modules/skyhook/deps/modules/swig: Decomplected WYSYWIG for Clojurescript
  • modules/toko: Delta-based tokenizer for automatic on-line serialization of textual documents as facts.
  • modules/butterfly-motor: OpenSCAD Pneumatic motor.
  • modules/heatsealer: OpenSCAD Heat Sealer for welding plastic sheets.
  • modules/foam-generator: Foam generator for making aircrete.
  • modules/pu-sprayer: Polyurethane spray gun for DIYers.
  • modules/vane-motor: Vane style pneumatic motor.
  • modules/cement-pump: Investigations into designs for a low-cost cement pump.
  • modules/cabinetry-joins: Simple fdm-optimized joints for low-cost storage.
  • modules/vine-drill: investigations into well-drilling machine based on a vine robot
  • modules/dlfp: Investigations of Dragon’s Deep Learning For Programmers. Includes book and code.
  • modules/codenames: An implementation of the game Codenames in clojure/clojurescript.
  • modules/blog: My personal blog: www.cartesiantheatrics.com
  • modules/clj-raft: Repo for RAFT algorithm implementation.
  • modules/clj-rosbag: ROS bag reader implementation in Clojure.
  • modules/practice: Cross-disciplinary practice problems based on org-mode spaced repetition framework

The environment includes Python, Clojure, Java, Node.js, and Clojurescript.

Installing

Make sure to do a git submodule update --recursive --init before installing.

Windows

  • Install WSL 2.
  • Install Ubuntu 22.04 with WSL 2.
  • Install Docker Desktop for Windows.
  • Enable WSL 2 engine in docker: go to settings and toggle “Use the WSL 2 based engine”.
  • Restart docker.
  • Install vcxsrv using windows.
  • Create a shortcut to launch cvxsrv on your desktop:
    • Right Click -> new -> shortcut.
    • past this in the “location” field: "C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -ac -dpi auto
    • Save shortcut
  • Launch CvSxrv by double clicking the X icon. You should see it show up in your running programs panel.
  • Login into ubuntu.
  • Install terminator: sudo apt install terminator
  • Launch terminator by just invoking the command at the prompt. You should see a new terminal window show up. If you get this far, it means your X window server is working.
  • Install some programs:
    • zsh & git: sudo apt install zsh git
    • oh-my-zsh: sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • Launch into zsh terminal.
  • Configure git: git config --global user.email "<your email here>" && git config --global user.name "<your name here>"
  • Create an ssh-key:
    • ssh-keygen -C "<email>" (default all the options)
    • Cat the public key: cat ~/.ssh/id_rsa.pub
    • Copy/Paste your public key into github. See here, click “New SSH key”.
  • Create ssh session: eval `ssh-agent` && ssh-add ~/.ssh/id_rsa
  • Clone the repo: git clone [email protected]:cartesian-theatrics/games.git --recursive
    • NOTE: make sure you’ve accepted all three of my github collaboration invites before cloning. You need to be a collaborator on all the repos.
  • Build docker container: ./docker_build.sh (this will take a long time the first time)
  • Run docker container: ./docker_run_windows.sh (this will also take a long time the first time)

Linux

Once you have docker installed, Simply run:

  1. ./docker_build.sh (in this directory)
  2. ./docker_run.sh- (in this directory)

Development

Colaborative editing

We’ll use crdt.el for collaborative editing. It’s designed for org-mode and allows you to share any emacs buffer for collaborative editing. See the README here. The docker container is already setup with `tuntox`, so follow the guide for that to share your buffers.

I’ll make sure that CRDT is supported out-of-the-box as I setup the emacs environment here. I’ve tested it already with two computers and it works wonderfully.

Communication

I installed telegram into the container with voice support so we should be able to chat to each other directly in emacs. You’ll want to install telegram for your desktop: https://desktop.telegram.org/

Just run M-x telega (say yes to the compile questions) to connect the emacs client to your telegram desktop.

Essential Commands

Category Hint key pattern command Note
Emacs Emacs is stuck Ctrl-g    
Navigation Enter Normal ESC evil-normal-state it’s recommended to remap CAPS to ESC
Navigation Enter Insert i evil-insert  
Navigation Enter Visual v evil-visual-state Used for selecting text
Doom Get Help SPC h d h doom/help Learn Doom
Buffers Goto Buffer SPC b b switch-workspace-buffer  
Buffers Goto Any Buffer SPC b B switch-buffer Inclues Process Buffers
Buffers Manage Buffers SPC b i ibuffer Press d to mark, d to delete
Terminal Open term M-x vterm vterm Open oh-my-zsh shell
Search Recent files SPC f r recentf-open-files Find recent files.
Search Project files SPC p f projectile-find-file Find file in project (git repo)
Search Omni Search SPC *   Omni search files in project
Search Command Search SPC : execute-extended-command Search for a emacs command
Chat Open Telegram client M-x telega   Open telegram chat client
Version Control Manage Git SPC g g magit-status The ultimate git interface
Version Control Get help h magit-popup-help Run in magit-satus context

devenv's People

Contributors

cartesian-theatrics avatar leverkuhn avatar

Stargazers

James Davidson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.