Skip to content

Instantly share code, notes, and snippets.

View peterc's full-sized avatar
🏠
Working from home

Peter Cooper peterc

🏠
Working from home
View GitHub Profile
@peterc
peterc / JSON-README.md
Last active November 7, 2024 21:22
LLM generated documentation for Ruby's "json" gem
@peterc
peterc / README.md
Created August 23, 2024 14:11
Basic assembly Hello World example for macOS on Apple Silicon/arm64

To compile:

as -o hello.o hello.s
ld -o hello hello.o -lSystem -syslibroot `xcrun -sdk macosx --show-sdk-path` -e _main -arch arm64

./hello
@peterc
peterc / README
Created July 15, 2024 14:30
Reconstruction of Clément Jean's binary search code from https://clement-jean.github.io/simd_binary_search_tree/
Seems to work, but I'm not an expert with this stuff, so YMMV.
@peterc
peterc / groq_client.rb
Last active April 19, 2024 17:45
Basic Groq API client for Ruby
require 'http'
require 'json'
class GroqClient
def initialize(api_key: nil, api_url: "https://api.groq.com/openai/v1/chat/completions", model: "mixtral-8x7b-32768")
@api_key = api_key || ENV['GROQ_API_KEY']
@api_url = api_url
@model = model
end
@peterc
peterc / index.html
Created October 13, 2023 13:57
Basic example of using import maps and TailwindCSS in a buildless fashion
<!DOCTYPE html>
<!-- A totally pointless and overkill use of import maps
and Moment.js, in order to simply use the technology and
see it in action.. -->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Buildless example</title>
<link href="https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css" rel="stylesheet">
@peterc
peterc / 404.md
Last active October 4, 2023 21:10
A pretend 404 page

A 404 page.. kinda

The content which was previous linked to by the link you clicked has been removed for quality control reasons. Sorry! On the plus side, you didn't waste your time reading something that wasn't actually very good :-)

@peterc
peterc / embedding_store.rb
Last active December 28, 2023 06:27
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
@peterc
peterc / perceptron.rb
Created June 7, 2023 20:30
Basic implementation of a perceptron in Ruby
class Perceptron
def initialize(inputs, bias = 0.0)
@weights = Array.new(inputs.keys.first.size) { rand }
@inputs = inputs
@bias = bias
end
def run(inputs)
z = inputs.zip(@weights).map { |i, w| i * w }.reduce(:+) + @bias
1.0 / (1.0 + Math.exp(-z))
@peterc
peterc / webui_client.rb
Created April 12, 2023 22:41
Basic Ruby client to the Automatic1111 WebUI API
require 'json'
require 'rest-client'
require 'base64'
url = "http://localhost:7860"
payload = {
"prompt": "liminal space, unusual lighting, sinister presence",
"negative_prompt": "",
"steps": 30,
"sampler_name": "Euler a",
@peterc
peterc / email_list_mx_checker.rb
Created March 13, 2023 12:53
Email list MX record checker
# Read stdin, extract email addresses
# Look up MX records for those addresses
# Return each email address and their first MX record
# (or IP address, as a fallback)
hosts = {}
STDIN.each_line do |l|
# Extract the email and the email domain from each line
email = l[/^([^\s]+\@[^\s+\,]+)\b/, 1]