Skip to content

Instantly share code, notes, and snippets.

antimatter15 /
Last active Sep 14, 2018
Jupyter Magic to Invoke Cell as AWS Lambda
FUNCTION_NAME = 'parallel_lambda'
LAMBDA_ROLE = 'arn:aws:iam::972882471061:role/lambda_exec_role'
AWS_PROFILE = 'paralambda'
import boto3
import subprocess
import json
View index.html
body {
background: #eee;
* {
box-sizing: border-box;
.paper {
padding: 10px;
antimatter15 / json3.js
Last active Aug 30, 2018
json2.js in the third dimension
View json3.js
// author: Kevin Kwok, based on Rose Curve by Eduard Bespalov
// license: The Software shall be used for Good, not Evil.
function main(params) {
var radius = 20,
vec = new CSG.Vector3D(0, 6, 0),
angle = 360 / 4;
var pent = CSG.Polygon.createFromPoints([
antimatter15 / faketalk.js
Last active Dec 2, 2018
A toy system inspired by realtalk
View faketalk.js
function mouse(_, me, when, claim){
when('fox is out', () => {
claim(me, 'wish', 'labelled', 'squeak')
claim(me, 'wish', 'outlined', 'red')
function fox(_, me, when, claim){
claim('fox is out')
antimatter15 / dynamic.js
Last active Dec 2, 2018
Dynamic Scoped Javascript
View dynamic.js
// Part I: The Magic
// The crux of this are two methods: pushStackTokens and readStackTokens
// They form the primitives for manipulating the Javascript VM's call stack
// pushStackTokens allows us to inject information (tokens) into the call stack
// readStackTokens allows us to retrieve all the stack tokens in the
// current call stack.
function pushStackTokens(tokens, fn, ...args){
tokens.forEach(tok => console.assert(/^\w+$/.test(tok),
View gist:02674d7e8b16cdf7aeaba52eaec47489
= (list 1 2 3 4)
= (1 . (2 . (3 . (4 . nil))))
(car thing)
= 1
(cdr thing)
= (2 . (3 . (4 . nil)))
= cdr_thing

Experiments with Reverse Mode Auto-Differentiation

Auto Differentiation is a technique used to calculate gradients of arbitrary computer programs. As opposed to symbolic differentiation, which occasionally results in an exponential blow-up in the size of the programs, and numerical differentiation, which estimates the gradient by running the target program dozens or hundreds of times, auto differentiation allows you to get out the gradient of a program after a single pass.

Reverse Mode Auto-Differentiation, especially in its imperative form has recently gained popularity due to projects like TF Eager, PyTorch, and HIPS Autograd. Existing auto differentiation libraries exploit operator overloading capabilities found in many languages to create data structures that incrementally track gradients.

Javascript lacks operator overloads, so defining special data structures loses much of its natural appeal. Rather than thinking about data structures, we can think about functions and how they compose, and how th

antimatter15 / irpc4.js
Created Dec 29, 2017
Interactively invoke remote resources: REST function parameters
View irpc4.js
// awaitable queue
class AwaitableQueue {
this.queue = []
this.resolvers = []
if(this.queue.length > 0) return Promise.resolve(this.queue.shift());
return new Promise((resolve, reject) => this.resolvers.push(resolve) )
antimatter15 / irpc.js
Created Dec 27, 2017
Continuations over REST
View irpc.js
// set up a mock HTTP client/server API
// should be pretty easy to replace this with
// the real ones
var endpoints = {}
async function fetch(path, opts){
let data = await endpoints[path](JSON.parse(opts.body))
return { async json(){ return data } }
async function serve(path, fn){
View Add
import java.util.Scanner;
public class Add implements Comparable<Add>{
private String name;
private String lastName;
private int number;
public Add(String name, String lastName, int number) { = name;