Skip to content

Instantly share code, notes, and snippets.

View drewhamlett's full-sized avatar
Verified

Drew Hamlett drewhamlett

Verified
  • Untappd
  • Wilmington, NC
View GitHub Profile
@andymatuschak
andymatuschak / gist:c5f2b8b68821a95e5b339bfcd4bfcee1
Last active July 21, 2020 16:59
late-bound React hook callbacks, avoiding subtree re-renders when event callback deps change
function useWeakRef<T>(value: T): React.MutableRefObject<T> {
const ref = useRef(value);
useEffect(() => {
ref.current = value;
}, [value]);
return ref;
}
function useByrefCallback<Args extends unknown[], Result>(
callback: (...args: Args) => Result,
@xenobrain
xenobrain / gjk.rb
Last active October 17, 2024 14:18
Physics stuff
DEG2RAD = Math::PI / 180.0
def tick args
b = args.state.box_a ||= { x: 540, y: 360, w: 200, h: 200, angle: 45, path: 'sprites/square/blue.png' }
a = args.state.box_b ||= { x: 340, y: 360, w: 100, h: 100, angle: 45, path: 'sprites/square/green.png' }
$a = a
a.y += 1 if args.inputs.up
a.y -= 1 if args.inputs.down
a.x -= 1 if args.inputs.left
@peterc
peterc / embedding_store.rb
Last active February 15, 2025 12:33
Using SQLite to store OpenAI vector embeddings from Ruby
# Example of using SQLite VSS with OpenAI's text embedding API
# from Ruby.
# Note: Install/bundle the sqlite3, sqlite_vss, and ruby-openai gems first
# OPENAI_API_KEY must also be set in the environment
# Other embeddings can be used, but this is the easiest for a quick demo
# More on the topic at
# https://observablehq.com/@asg017/introducing-sqlite-vss
# https://observablehq.com/@asg017/making-sqlite-extension-gem-installable
@robzolkos
robzolkos / stories.rb
Last active September 8, 2023 21:37
story.rb refactor
# Original code https://twitter.com/robinbortlik/status/1699524286568964440?s=20
# app/controllers/stories.rb
class StoriesController < ApplicationController
before_action :check_authorizationa # this should check and return a 401
def create
story = Story.new(story_params)
if story.save