Skip to content

Instantly share code, notes, and snippets.

👨‍👩‍👧
Working from home

Justin Lin JustinSDK

View GitHub Profile
View first_three_js.html
<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/96/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js"></script>
<script>
// 場景
const scene = new THREE.Scene();
@JustinSDK
JustinSDK / array.wat
Last active Sep 20, 2018
Wasm Array
View array.wat
;; 說明:https://openhome.cc/Gossip/WebAssembly/Array.html
(module
(import "env" "log" (func $log (param i32)))
(memory 1)
;; 建立新陣列
(func $arr (param $len i32) (result i32)
(local $offset i32) ;; 記錄陣列偏移量
(set_local $offset (i32.load (i32.const 0))) ;; 取得偏移量
@JustinSDK
JustinSDK / bytecode_abc_2.py
Last active Aug 25, 2018
Byte Code ABC - 2
View bytecode_abc_2.py
class Num:
def __init__(self, value):
self.value = value
def bc_instructn(self, bytecodes):
bytecodes.append(f'push {self.value}')
return bytecodes
class Add:
def __init__(self, left, right):
@JustinSDK
JustinSDK / bytecode_abc_1.py
Last active Aug 25, 2018
Byte Code ABC - 1
View bytecode_abc_1.py
class Num:
def __init__(self, value):
self.value = value
def evaluate(self, stack):
push(stack, self.value)
return stack
class Add:
def __init__(self, left, right):
View download.py
from urllib.request import urlopen
def download(url, file):
with urlopen(url) as url, open(file, 'wb') as f:
f.write(url.read())
urls = [
'http://openhome.cc/Gossip/Encoding/',
'http://openhome.cc/Gossip/Scala/',
'http://openhome.cc/Gossip/JavaScript/',
@JustinSDK
JustinSDK / async_demo.py
Last active Aug 14, 2018
async_demo.py
View async_demo.py
from concurrent.futures import ThreadPoolExecutor
import time
import random
def doAsync(task):
g = task()
future = next(g)
while True:
try:
future = g.send(future.result())
View modify_ast.py
import ast
code = '''
def add(n1, n2):
return n1 + n2
print(add(3, 4))
'''
class CrazyTransformer(ast.NodeTransformer):
def visit_BinOp(self, node):
@JustinSDK
JustinSDK / simple_type_checking.py
Last active Aug 1, 2018
simple_type_checking.py
View simple_type_checking.py
import sys, re, ast
type_hints_re = re.compile(r'([a-zA-Z]+):\s*([a-zA-Z]+)')
code = '''
"""x: int"""
x = 2
'''
node = ast.parse(code)
@JustinSDK
JustinSDK / simple_lang.js
Last active Feb 21, 2019
simple_lang.js - this gist has evolved into https://github.com/JustinSDK/toy_lang
View simple_lang.js
// === Tokenizer
class Tokens {
constructor(tokens) {
this.head = tokens[0];
this.tail = tokens.slice(1);
}
}
class Tokenizer {
View turing_machine.js
function println(v) {
console.log(v.toString());
}
class List {
constructor(array) {
this.array = array;
}
get first() {
You can’t perform that action at this time.