Skip to content

Latest commit

 

History

History
111 lines (100 loc) · 7.56 KB

README.org

File metadata and controls

111 lines (100 loc) · 7.56 KB

./resources/images/environment.png

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 20.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: src_python{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 git@github.com: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.

Workflow

  • See todo.org for completed and active tasks.
  • See backlog.org for backlog of tasks.
  • See journal.org for project journal.
  • Use M-x org-capture to add a todo/journal entry without interrupting your workflow.

Essential Commands

CategoryHintkey patterncommandNote
EmacsEmacs is stuckCtrl-g
NavigationEnter NormalESCevil-normal-stateit’s recommended to remap CAPS to ESC
NavigationEnter Insertievil-insert
NavigationEnter Visualvevil-visual-stateUsed for selecting text
DoomGet HelpSPC h d hdoom/helpLearn Doom
BuffersGoto BufferSPC b bswitch-workspace-buffer
BuffersGoto Any BufferSPC b Bswitch-bufferInclues Process Buffers
BuffersManage BuffersSPC b iibufferPress d to mark, d to delete
TerminalOpen termM-x vtermvtermOpen oh-my-zsh shell
SearchRecent filesSPC f rrecentf-open-filesFind recent files.
SearchProject filesSPC p fprojectile-find-fileFind file in project (git repo)
SearchOmni SearchSPC *Omni search files in project
SearchCommand SearchSPC :execute-extended-commandSearch for a emacs command
ChatOpen Telegram clientM-x telegaOpen telegram chat client
Version ControlManage GitSPC g gmagit-statusThe ultimate git interface
Version ControlGet helphmagit-popup-helpRun in magit-satus context