Skip to content

Instantly share code, notes, and snippets.

View tenderlove's full-sized avatar
©️
 ​[object Object] :trollface:

Aaron Patterson tenderlove

©️
 ​[object Object] :trollface:
View GitHub Profile
@tenderlove
tenderlove / mdns.rb
Created November 19, 2023 20:02
Sample mDNS client in Ruby
# mDNS client
#
# Usage: ruby script.rb "_http._tcp.local."
require "socket"
require "ipaddr"
require "fcntl"
require "resolv"
module DNSSD
#!/Users/aaron/.rubies/arm64/ruby-trunk/bin/ruby
# Configure Vim (using vim-lsp) like this where `ls.rb` is this script:
#
# if executable('./ls.rb')
# au User lsp_setup call lsp#register_server({
# \ 'name': 'ls.rb',
# \ 'cmd': ['./ls.rb'],
# \ 'allowlist': ['ruby'],
# \ })
@tenderlove
tenderlove / test.rb
Last active September 27, 2023 16:00
require "strscan"
class Lexer
IDENTIFIER = /[_A-Za-z][_0-9A-Za-z]*\b/
IGNORE = %r{
(?:
[, \c\r\n\t]+ |
\#.*$
)*
}x
profiler = Thread.new do
while true
p Thread.main.backtrace
sleep 0.5
end
end
def slow_function
sleep 2
end
#!/Users/aaron/.rubies/arm64/ruby-trunk/bin/ruby
# Configure Vim (using vim-lsp) like this where `ls.rb` is this script:
#
# if executable('./ls.rb')
# au User lsp_setup call lsp#register_server({
# \ 'name': 'ls.rb',
# \ 'cmd': ['./ls.rb'],
# \ 'allowlist': ['ruby'],
# \ })
#!/Users/aaron/.rubies/arm64/ruby-trunk/bin/ruby
# This is a demo language server for Ruby, written in Ruby. It just checks
# the syntax of Ruby programs when you save them.
#
# Configure this in Vim by adding the vim-lsp plugin, then doing this
# in your vimrc:
#
# au User lsp_setup
# \ lsp#register_server({
require "benchmark/ips"
require "graphql/language/lexer"
require "graphql/language/token"
require "graphql/language/block_string"
schema = DATA.read
Benchmark.ips { |x|
x.report("graphql") { GraphQL::Language::Lexer.tokenize(schema) }
}
# Okasaki style Functional Red Black Tree
# https://www.cs.tufts.edu/comp/150FP/archive/chris-okasaki/redblack99.pdf
#
# leaves and root are black
# BST
# No red node has a red child
# Every path from the root to a leaf has the same number of black nodes
module RBTree
class Leaf
require "fisk"
require "aarch64"
require "jit_buffer"
require "fiddle"
x86 = Fisk.new
x86.put_label(:foo)
x86.mov(x86.rax, x86.imm(42))
x86.ret
x86.jmp(x86.label(:foo))
# Smart Health Card decoder
# This decodes the SHC url thing that is stored in smart health card QR codes
str = DATA.readline
require "base64"
require "zlib"
require "json"
require "pp"