Skip to content

Instantly share code, notes, and snippets.

View hangj's full-sized avatar
🥏
happy coding

hangj hangj

🥏
happy coding
View GitHub Profile
@hangj
hangj / vapid_helper.py
Last active March 19, 2024 11:40 — forked from cjies/vapid_helper.py
Python based VAPID key-pair generator
import base64
import ecdsa
def generate_vapid_keypair():
"""
Generate a new set of encoded key-pair for VAPID
"""
pk = ecdsa.SigningKey.generate(curve=ecdsa.NIST256p)
vk = pk.get_verifying_key()
@hangj
hangj / init.fish
Last active December 8, 2023 11:34 — forked from overtrue/init.fish
config.fish set environment variables from bash_profile
# Fish shell
# REUSE ENVIRONMENT VARIABLES FROM ~/.bash_profile
bash -c '. ~/.bash_profile; env' | while read e
set var (echo $e | sed -E "s/([a-zA-Z0-9_]+)=(.*)\$/\1/")
set value (echo $e | sed -E "s/([a-zA-Z0-9_]+)=(.*)\$/\2/")
# remove surrounding quotes if existing
set value (echo $value | sed -E "s/^\"(.*)\"\$/\1/")
Readme: In the following pseudo code, [] indicates a subroutine.
Sometimes I choose to write the subroutine inline under the [] in order to maintain context.
One important fact about the way rollbacks are handled here is that we are storing state for every frame.
In any real implementation you only need to store one game state at a time. Storing a game
state for every frame allows us to only rollback to the first frame where the predicted inputs don't match the true ones.
==Constants==
MAX_ROLLBACK_FRAMES := Any Positive Integer # Specifies the maximum number of frames that can be resimulated
FRAME_ADVANTAGE_LIMIT := Any Positive Integer # Specifies the number of frames the local client can progress ahead of the remote client before time synchronizing.
@hangj
hangj / deploy.lua
Last active September 20, 2019 15:12 — forked from samael500/handler.lua
Validating payloads from GitHub webhooks with Nginx + Lua
-- $ sudo opm get jkeys089/lua-resty-hmac
local shell = require "resty.shell"
local cjson = require "cjson.safe"
local hmac = require "resty.hmac"
local secret = '<MY SUPER SECRET>'
local event = 'push'
local branch = 'refs/heads/master'