Skip to content

Instantly share code, notes, and snippets.

View shugo's full-sized avatar

Shugo Maeda shugo

  • NaCl
  • Matsue, Shimane, Japan
View GitHub Profile
; Zone: rubyist.net
$ORIGIN rubyist.net.
$TTL 3600
; NS Records
; MX Records
shibuya 300 IN MX 10 shibuya.rubyist.net.
; A Records
@shugo
shugo / strscan.rb
Created May 23, 2024 02:15
Pure Ruby StringScanner
class StringScanner
attr_reader :string
def initialize(string, *args)
@string = string
@pos = 0
@last_match = nil
end
def scan(re)
@shugo
shugo / example.rb
Created March 1, 2024 07:47
[Feature #20318] Example
# before
def balance(*args)
case args
in [RedFork[a, xk, xv, b], yk, yv, RedFork[c, zk, zv, d]]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[RedFork[a, xk, xv, b], yk, yv, c], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [RedFork[a, xk, xv, RedFork[b, yk, yv, c]], zk, zv, d]
RedFork[BlackFork[a, xk, xv, b], yk, yv, BlackFork[c, zk, zv, d]]
in [a, xk, xv, RedFork[b, yk, yv, RedFork[c, zk, zv, d]]]
@shugo
shugo / nacl_quine.rb
Created November 8, 2023 11:10
NaCl Quine by yhara
eval$s=
%w(e="e val$s=% w("+$s+")*'' ";a=0;"
>KIZOaz(( *EHO1M< nz[MPb.~qirzBv0n'q T;lIup
oz6kZqF3{G pD+PSaA F1zJEw/,kBa>3f H_/D7+pAYH'O>NQ$g=JH6 E=C|Di
&~<2lBiHLV=r k+KjOcz )Bb~qVa1X)G2`[tb,& ".bytes {a=a*9 1+_1%9
2-1};$ ><<"\e [2J";d= (1..7). map{"\e [3#{_1
}m"};3 20.times{|k|h ="\e[1;1H";b=0;(0 ...10). each{|
v|h<<3 2.chr*(Math .sin(k /99.0) .abs*(10 -v));89 .time
s{h<<d [k*7/320, 3].samp le;h<<(a [v*89+_1]==1?(c=e[b] ;b+=1
;c):32) };h<<10} ;$><<h+"\e[ 0m";sl eep(0.01)};2001- 2023)*''
===============================================
PRK Firmware 0.9.20 (20230419 revision 21c7662)
PICORUBY_NO_MSC: false
prk-conf: ::
===============================================
STATS 92032/204800
Init Keyboard
Init GPIO
Configured as a split-type Anchor
@shugo
shugo / keymap.rb
Created April 19, 2023 11:02
Runner3680 keymap
kbd = Keyboard.new
kbd.split = true
kbd.init_pins(
[ 4, 5, 6, 7, 8 ],
[ 28, 27, 26, 22, 20, 23, 21 ]
)
kbd.add_layer :default, %i[
#!/bin/sh
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"
if on_ac_power; then
powerprofilesctl set performance
else
powerprofilesctl set power-saver
fi
<html>
<script src="https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.5.0/dist/browser.script.iife.js"></script>
<button id="start">Start</button>
<div id="counter">0</div>
<script type="text/ruby">
require "js"
def start_counter
@shugo
shugo / test.html
Last active December 17, 2022 00:06
<html>
<script src="https://cdn.jsdelivr.net/npm/ruby-head-wasm-wasi@0.5.0/dist/browser.script.iife.js"></script>
<script type="text/ruby">
require "js"
document = JS.global[:document]
window = JS.global[:window]
start = document.getElementById("start")
counter = document.getElementById("counter")
$ cat b2.rb
require 'forwardable'
require 'pp'
require 'benchmark/ips'
class Obj
extend Forwardable
attr_accessor :other