programming - jgrey4296/templates GitHub Wiki

Programming Tools

Languages

Supercollider

https://supercollider.github.io/ http://doc.sccode.org/Browse.html#Language

sclang -h

scsynth -h

Unison

https://www.unison-lang.org/learn/tour/

Misc Tools

GNU Global

https://www.gnu.org/software/global/globaldoc_toc.html#Emacs-editor

Make

https://www.gnu.org/software/make/manual/make.html https://www.gnu.org/software/automake/manual/automake.html#Autotools-Introduction

	make --help

Topics

Compiling Aseprite from source

Follow the instructions to install google depot_tools, then skia. The missing instruction is to unset python3 and anaconda in the path as depot_tools, and the setup script for skia uses python 2. after that, compilation is straight forward, making sure to target the OSX version you are actually on.

Cookiecutter

https://cookiecutter.readthedocs.io/en/2.2.3/README.html

Meson

https://mesonbuild.com/

Nix

https://nixos.org/manual/nix/stable/introduction.html

bumpver

https://github.com/mbarkhau/bumpver

lsp

https://emacs-lsp.github.io/lsp-mode/ https://github.com/fredcamps/lsp-jedi https://microsoft.github.io/language-server-protocol/ https://www.ncameron.org/blog/how-the-rls-works/

pre-commit

https://pre-commit.com/#plugins

Links

Build Tools

dotnet

https://learn.microsoft.com/en-gb/dotnet/core/tools/ https://learn.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/ https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/boxing-and-unboxing https://github.com/quozd/awesome-dotnet https://terminalroot.com/how-to-install-csharp-on-ubuntu-and-getting-started/

	dotnet --help

Basic Usage

dotnet --list-sdks
dotnet --list-runtimes
dotnet --help

dotnet nuget

build v publish

For .net < 3.0, build doesn’t copy nuget packages, uses global.

adding packages

dotnet add [proj] package [package]

Elixir / Erlang

ASDF

vms: https://github.com/asdf-vm/asdf

https://samuelmullen.com/articles/customizing_elixirs_iex https://itnext.io/a-collection-of-tips-for-elixirs-interactive-shell-iex-bff5e177405b?gi=3b2000b5d04b https://subscription.packtpub.com/book/programming/9781784397517/5/ch05lvl1sec59/connecting-nodes

asdf --help

# Machine 1:
iex --name [email protected] --cookie test

# Machine 2:
iex --name [email protected] --cookie test
Node.connect :"[email protected]"
Node.list

Mix

https://hexdocs.pm/mix/Mix.html https://elixir-lang.org/getting-started/mix-otp/introduction-to-mix.html

mix --help

Rebar

https://rebar3.org/docs/

Haskell

Cabal

Javascript

Grunt

https://gruntjs.com/getting-started http://adrianmejia.com/blog/2014/10/07/grunt-js-tutorial-from-beginner-to-ninja/

	grunt --help

tasks

grunt.registerTask(name,description,function);
grunt.registerTask(name,[taskNames]);

// If the function has parameters:
grunt testTask:someParameter

grunt.fail.warn()
grunt.fail.fatal
grunt.log.[writeln,write,subhead,error,ok]();

grunt.file.[write,read,readJSON,delete,copy,mkdir]();
grunt.file.expand(); // -> returns an array with all files matching a pattern (use
grunt.file.recurse(); // -> expand path, return a callback???

this.requires([taksNames]);
this.name(); // -> name of the task;
this.args();

Plugins:

to install a plugin:

npm install grunt-contrib-**** --save-dev
// load the plugin in the gruntfile:
grunt.loadNpmTasks('grunt-contrib-****');

Top Plugins:

  • jshint (use .jshintrc for settings)
  • watch (to run tasks when files change)
  • uglify
  • clean
  • concat
  • connect
  • concurrent

npm

npm --help

JVM

Ant

https://ant.apache.org/manual/index.html

Gradle

https://docs.gradle.org/current/userguide/userguide.html https://docs.gradle.org/current/kotlin-dsl/index.html

Startup

gradle.properties

https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties

init.gradle.kts
settings.gradle.kts

creates Settings objects.

adds libraries to build script classpath, defines which builds are participating. instantiates Project instances.

build.gradle.kts

evals task registration to build task hierarchy.

hooks: gradle.beforeProject {} gradle.afterProject {} tasks.whenTaskAdded {}

https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api/-task/index.html https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api/-project/index.html

build.gradle.kts

task actions (doFirst, doLast..)

buildSrc

https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:build_sources

allows extraction of build logic into plugins. is essentially a subproject, so use a buildSrc/build.gradle.kts

Keytool

for creating keystores to deploy on android

keytool
-keyalg RSA
-genkeypair
-alias androiddebugkey
-keypass android
-keystore debug.keystore
-storepass android
-dname "CN=Android Debug,O=Android,C=US"
-validity 9999
-deststoretype pkcs12

Sdkman!

https://sdkman.io/ available jdks: https://sdkman.io/jdks available sdks: https://sdkman.io/sdks

jvm!
sdk install java
sdk install scala 3.3.3

sdk uninstall scala
sdk use scala 3.3.3
sdk default scala 3.3.3
sdk current
sdk current java
sdk version

Use ‘.sdkmanrc’ files to setup local environments

Sdkmanager

https://developer.android.com/tools/sdkmanager management of different jdks and android sdk’s

Linux Install

install straight from above link

Mac Install

on mac, bootstrap with: brew install –cask android-studio brew install –cask android-commandlinetools then use that sdkmanager to install actual sdks etc in $android_home add installed java versions using jenv, activate as necessary

Lisp

Doom

https://github.com/doomemacs/doomemacs/blob/master/docs/index.org

Emacs Straight Recipes

https://github.com/radian-software/straight.el#the-recipe-format

;; Disable Byte Compilation
(package! a-package :recipe (:build (:not compile)))
;; Or disable byte compilation with
;; -*- no-byte-compile: t; -*-

;; Specify a local repo
(package! a-package :recipe (:local-repo "~/.doom.d/packages/a-package"))

Ocaml / Coq

Opam

https://opam.ocaml.org/

opam --help

Python

Build

https://build.pypa.io/en/latest/

python -m build ./

Twine

twine upload -u __token__ -p {password} ./dist/*

Conda

https://conda.io/projects/conda/en/latest/user-guide/index.html

Mamba

https://mamba.readthedocs.io/en/latest/index.html

Pip

https://pip.pypa.io/en/stable/ https://github.com/bndr/pipreqs https://github.com/jgonggrijp/pip-review

Poetry

https://python-poetry.org/docs/master/

Scons

https://scons.org/doc/production/HTML/scons-user.html

Ruby

RubyGems

https://guides.rubygems.org/

Rust

Cargo

https://doc.rust-lang.org/cargo/ https://stackoverflow.com/questions/37586216/step-by-step-interactive-debugger-for-rust

remove ~/.cargo/packages.cache if it locks https://github.com/rust-lang/cargo/issues/9742

rustup

https://rust-lang.github.io/rustup/

rustup component add rustfmt-preview rustfix clippy rust-analyzer rust-gdb

Environment Management

dotnet

dotnet --list-sdks
dotnet --list-runtimes
dotnet --help

dotnet nuget

elixir

ASDF

vms: https://github.com/asdf-vm/asdf

https://samuelmullen.com/articles/customizing_elixirs_iex https://itnext.io/a-collection-of-tips-for-elixirs-interactive-shell-iex-bff5e177405b?gi=3b2000b5d04b https://subscription.packtpub.com/book/programming/9781784397517/5/ch05lvl1sec59/connecting-nodes

asdf --help

# Machine 1:
iex --name [email protected] --cookie test

# Machine 2:
iex --name [email protected] --cookie test
Node.connect :"[email protected]"
Node.list

jvm

Sdkman!

https://sdkman.io/

jvm!

available jdks: https://sdkman.io/jdks available sdks: https://sdkman.io/sdks

sdk install java
sdk install scala 3.3.3

sdk uninstall scala
sdk use scala 3.3.3
sdk default scala 3.3.3
sdk current
sdk current java
sdk version

Use ‘.sdkmanrc’ files to setup local environments

Sdkmanager

https://developer.android.com/tools/sdkmanager management of different jdks and android sdk’s

Linux Install

install straight from above link

Mac Install

on mac, bootstrap with: brew install –cask android-studio brew install –cask android-commandlinetools then use that sdkmanager to install actual sdks etc in $android_home add installed java versions using jenv, activate as necessary

python

mamba

conda

poetry

rust

rustup

Repls

haskell

ghci

python

ipython

kotlin

kotlin

prolog

swipl

clingo

elixir

iex

ai

soar

clips

ceptre

inform

supercollider

⚠️ **GitHub.com Fallback** ⚠️