I made a documentation generator that cashes in on Clojure's dynamism. See the play-cljs docs (a ClojureScript game library) for an example of its output.
Like many of you, I've often wondered what my final regret will be on my deathbed. My best guess came to me in a dream recently. I was walking across the charred earth of an apocalyptic future world, maneuvering around the remains of the less fortunate. I was startled to find a young girl, barely holding onto her life. She murmured something to me. I asked her to repeat it, and she said more loudly: "I...wish your Clojure projects didn't have such crappy documentation."
Did you know nim can eval itself at runtime like a frickin scripting language?
Clone this gist and do...
nimble install compiler
nim c -r nimeval.nim
...and you should see:
- Create a Digital Ocean account
- In the OS X terminal, run
ssh-keygen
, then hit enter until it is done - Create a droplet
- Select Ubuntu 16.10 x64
- In Finder,
Go -> Go to Folder...
then type~/.ssh
- Open
id_rsa.pub
with TextEdit - Copy the contents of the file and paste them in the "New SSH Key" text field
- Click "Create"
- In the Terminal app, run
ssh root@YOUR_IP_ADDRESS
- Run
apt-get update
(defproject lein-paravim "0.1.0-SNAPSHOT" | |
:dependencies [[org.clojure/clojure "1.10.1"]] | |
; since paravim is in the `:dev` profile, | |
; it will launch when you do `lein run`. | |
; if you don't want that behavior, | |
; just change `:dev` to something else. | |
; if you change it to `:paravim`, you can | |
; launch it by doing `lein with-profile paravim run` | |
:profiles {:dev {:dependencies [[paravim "RELEASE"]] | |
:main paravim.start |
██╗██████╗ ███████╗ █████╗ ███████╗ ███████╗ ██████╗ ██████╗ █████╗ | |
██║██╔══██╗██╔════╝██╔══██╗██╔════╝ ██╔════╝██╔═══██╗██╔══██╗ ██╔══██╗ | |
██║██║ ██║█████╗ ███████║███████╗ █████╗ ██║ ██║██████╔╝ ███████║ | |
██║██║ ██║██╔══╝ ██╔══██║╚════██║ ██╔══╝ ██║ ██║██╔══██╗ ██╔══██║ | |
██║██████╔╝███████╗██║ ██║███████║ ██║ ╚██████╔╝██║ ██║ ██║ ██║ | |
╚═╝╚═════╝ ╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ | |
_______________________________________ | |
|,---"-----------------------------"---,| | |
||___ ............................ || |
# to build this with emscripten, you need emsdk on your PATH. | |
# first, clone https://github.com/emscripten-core/emsdk | |
# then in that repo run: | |
# ./emsdk install latest | |
# ./emsdk activate latest | |
# and then add the directories it prints out to your PATH | |
# | |
# then in this repo run: | |
# nim c -d:emscripten bug.nim | |
# |
{:deps {net.sekao/odoyle-rules {:mvn/version "RELEASE"}}} |
guitar: o3 b8 > c8 d4 < b > c < a b g a %1 | |
banjo: @1 o3 b8 > c8 d4 < b > c < a b g a %2 | |
guitar: @2 o3 b8 > c8 d4 < b > c < a b g a %3 | |
guitar: @3 d1 g4 g a b g b a1 %4 | |
banjo: @4 g4 g a b g1 %5 |
(ns my-game.core | |
(:require [clojure.edn :as edn] | |
[clojure.java.io :as io] | |
[play-clj.core :refer :all] | |
[play-clj.g2d :refer :all] | |
[play-clj.g3d :refer :all] | |
[play-clj.math :refer :all] | |
[play-clj.physics :refer :all] | |
[play-clj.ui :refer :all]) | |
(:import [java.io StringWriter])) |