Skip to content

Instantly share code, notes, and snippets.

@sakuro
sakuro / Blueprint
Created September 4, 2026 16:08
Facorio 各惑星の一日を24時間表記する時計の建設計画
0eNq9nO9r20YYx/+VcXuzDaXVnU4nyZAX/iG/2pvCXhQcYxTnkogqkifJSUMw1NkoCdvY1sHawqAU1jWsUMZgMDbo/pd6TrP/Ynd26iRdtkV3fe6Vz/dLH919refR3XPeQ6vJkA/yOC1RbQ+t8aKfx4MyzlJUQ9OvPj3+5OvjB48m4+evvnwx/e4nkfjz1zvH959M9u8Revxw/69vv5mMjybjPybjHyfj+5PxD9idHtydHvw+y3t68vjo1fe/raQraWeQRCkvl9NouB0X3Zd373mi4ln+9jDpR+lwVoKvuRfKNhK+Gs0K7Av568NkI8tnJc6FgujjYZxkMp/IFshCcT9LC1Tr7KEi3kijRN5tuTvg4ja347wcihwLpdGWzJjXWOonWf8WGom26Rq/jWp41LUQT8u4jPm8q9mX3V463Frluahw1gNPeL/M8qV+trUap5FIiu4HWRHPh3YPyf78a66FdlFtyffEVQRgmWdJb5VvRtuxaCBqZQOeR6ezUcaiawttiCv0yrh/q3flG/lI3sRatFuxWet1s4SnG+Xm1Rt+iEajkfWP4SGLemtxISZqd2kgJiu5ZGCCxcCIIfqXoRlEueis5Pl8KkSVtUUf63FelFfnvYHm1yjKSP4MAld+25IXkPNWQy8Pn8gaJb8tSlFnXdAsywpxt9PPkixffjdkTZ+2uxjXqNu5Psvsdq7Lil0kR+Jt0lENOseGpnM06DD42BENOht87LAynW1Ad7YGHbju/ECDDlx3vq9BB64731OlswN43flMgw5ed64GHbzuqAYdvO6UbYXtG9Ad0aCD1x3WoIPXna1BB647T9lW2B687jxfgw5cd56nQQeuO49p0MHrTt1WMAO6oxp08LpzNOjgdUc06OB1V91WtMKm4/pd2zWgu+q2osUabYYlHbjuWHVb0QwbdVaXdOC6Y9VtRZM1XI9KOnDdseq2ohE2sNfq2hRed6y6rWiwetNnkg5ed9VtRT2s+35b0sHrrrqtED8JJ/AlHbzuqtuKIAz
@sakuro
sakuro / gem-rust.diff
Last active December 28, 2025 12:34
Diff of `bundle gem` without/with --ext=rust
diff -urN foo1/.github/workflows/main.yml foo2/.github/workflows/main.yml
--- foo1/.github/workflows/main.yml 2025-12-28 21:30:58.265960275 +0900
+++ foo2/.github/workflows/main.yml 2025-12-28 21:31:06.044305950 +0900
@@ -20,10 +20,12 @@
- uses: actions/checkout@v4
with:
persist-credentials: false
- - name: Set up Ruby
- uses: ruby/setup-ruby@v1
+ - name: Set up Ruby & Rust
@sakuro
sakuro / gist:0e632e5f6df2277231a427cdc47a5fc7
Created September 14, 2025 16:51
PLATFORMSに入っているべき値を強制するCop
# lib/rubocop/cop/bundler/required_platforms.rb
module RuboCop
module Cop
module Bundler
class RequiredPlatforms < Cop
def on_new_investigation
required = Array(cop_config['RequiredPlatforms'])
lockfile = File.read('Gemfile.lock')
platforms = lockfile[/^PLATFORMS\n(.+?)\n\n/m, 1].to_s.lines.map(&:strip)
(required - platforms).each do |missing|
------ Italy -------
October 1582
Su Mo Tu We Th Fr Sa
1 2 3 4 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
------ France ------
@sakuro
sakuro / style.rb
Last active September 10, 2025 00:19
Dataクラスで位置パラメータも使えるようにするハック
# まず素直に Data.define
Style = Data.define(:foreground, :background, :bold, :italic, :underline, :inverse)
class Style
# クラス内に置く小細工モジュール
module CtorFlags
# クラスごとに上書き可能な“設定”
def bool_flag_keys = %i[bold italic underline inverse]
def kw_defaults = { foreground: nil, background: nil }
.merge(bool_flag_keys.to_h { |k| [k, false] })
@sakuro
sakuro / gist:0538faabed3b524791ab7984b01a0f61
Created June 15, 2025 07:49
2005/6/15 ミリラジ公録 昼の部セトリ
昼の部ライブパートセトリ
1. Reward Sweets (ぴょんころもち)
2. 昏き星、遠い月 (山崎・Machico)
3. ショコラブル*イブ (田所・夏川)
4. 成長Chu→LOVER!! (原・麻倉)
5. リフレインキス (原・Machico・夏川)
6. U・N・M・E・Iライブ (ぴょんころもち、最後にゲスト参戦)

ASCII文字[^1]のPOSIX正規表現クラス分類

クラス[^2] [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:] [:word:]
[00]-[08] [0e]-[1f] [DEL] - - - - - - - - - - - -
[HT] - - - - - - - - - -
[LF][VT][FF][CR] - - - - - - - - - - -
[SPACE] - - - - - - - - - -
記号[^3] - - - - - - - - - -
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "locale"
gem "rackup"
end
require "locale/middleware"
require "rack/logger"
@sakuro
sakuro / clr.md
Last active November 10, 2023 01:57

スクリーンショット 2023-11-10 10 51 25

スクリーンショット 2023-11-10 10 51 29

スクリーンショット 2023-11-10 10 51 33

スクリーンショット 2023-11-10 10 51 37

スクリーンショット 2023-11-10 10 51 41

スクリーンショット 2023-11-10 10 51 44

#!/usr/bin/env ruby
installed = {
mod_a: [ "1.0", "1.1", "1.2" ],
mod_b: [ "1.2" ],
}
wanted_to_use = {