Most of this came from an article that I can't seem to find anymore
- create a google cloud account / turn on compute
- create a free tier compute instance
- purchase a domain
- set up a static ip (costs ~ $3.60/month)
- set up dns
- ssh into compute instance
| #!/bin/bash | |
| # Encrypts / decrypts a file using a password | |
| # Usage: ./crypt.sh -e <file> | |
| # ./crypt.sh -d <file> | |
| # ./crypt.sh -d <file in base64 encoding> | |
| # ./crypt.sh -d <base64 text> # note that this puts the encrypted text in your .bash_history / .zsh_history | |
| if [ "$1" == "-e" ]; then |
| # # https://thevaluable.dev/zsh-completion-guide-examples/ | |
| zstyle ':completion:*:*:*:*:descriptions' format '%F{green}-- %d --%f' | |
| zstyle ':completion:*' menu select | |
| # zstyle ':completion:*' file-list all | |
| zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} | |
| # # Allow for autocomplete to be case insensitive | |
| # # zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' \ |
| function addCSSRule(selector, rules, index) { | |
| if (!window.the_added_sheet) { | |
| style = document.createElement('style') | |
| style.appendChild(document.createTextNode("")) | |
| document.head.appendChild(style) | |
| if ("insertRule" in sheet) { | |
| sheet.insertRule(selector + "{" + rules + "}", index); | |
| } else if ("addRule" in sheet) { | |
| sheet.addRule(selector, rules, index); | |
| } |
| -- Run AppleScript | |
| on run {input, parameters} | |
| tell application "Finder" | |
| set myWin to window 1 | |
| set loco to selection | |
| if the number of items in loco is greater than 0 then |
| ### workshop stuff ### | |
| # not sure where I got these.. | |
| # don't put duplicate lines or lines starting with space in the history. | |
| # See bash(1) for more options | |
| HISTCONTROL=ignoreboth | |
| # append to the history file, don't overwrite it | |
| shopt -s histappend |
| function <function_name>([param1] [,param2 ...]) | |
| -- your code here | |
| end | |
| -- examples: | |
| function jump() | |
| y = y + 10 | |
| end |
| function _init() | |
| -- setup code | |
| end | |
| function _update() | |
| -- code that changes things in the game | |
| end | |
| function _draw() | |
| -- code that draws things to the screen |
| // The Force and | |
| vec3 roty(vec3 pt, float amt) { | |
| //vec2 xz = rotate(vec2(pt.x, pt.z),vec2(0,0), amt); | |
| //return vec3(xz.x, pt.y, xz.y); | |
| float angle = atan(pt.x, pt.z)+amt; | |
| float len = length(vec2(pt.x, pt.z)); | |
| return vec3(sin(angle)*len, pt.y, cos(angle)*len); | |
| } | |
| vec3 rotz(vec3 pt, float amt) { |
pico-8 comes with a manual.txt or something
the pico-8 Wikia is very detailed
the main website's BBS has the rest, as well as a ton of examples
Trasevol_dog's patreon and twitter are a great resource as well as his games on the BBS
https://neko250.github.io/pico8-api/
https://www.lexaloffle.com/bbs/?tid=28207