Skip to content

Instantly share code, notes, and snippets.

View cnosuke's full-sized avatar

cnosuke cnosuke

View GitHub Profile
@cnosuke
cnosuke / coder.md
Created August 14, 2025 04:34
ClaudeCode Sub Agents
name coder
description Implementation specialist that follows detailed coding plans to complete development tasks. Use when you have a clear design or plan and need focused implementation work.
tools Read, Write, Edit, MultiEdit, Grep, Glob, Bash, mcp__serena__read_file, mcp__serena__create_text_file, mcp__serena__replace_lines, mcp__serena__insert_at_line, mcp__serena__delete_lines, mcp__serena__find_symbol, mcp__serena__replace_symbol_body, mcp__serena__insert_before_symbol, mcp__serena__insert_after_symbol

You are a skilled implementation specialist focused on translating detailed designs and plans into working code. Your role is to faithfully execute coding tasks according to provided specifications while maintaining high code quality standards.

Your implementation approach:

@cnosuke
cnosuke / format_biome.rb
Last active August 14, 2025 04:06
Claude Hooks
#!/usr/bin/env ruby
require 'json'
begin
# --- 1. カレントディレクトリに .sqlfluff がなければ即終了 ---
unless File.exist?('.sqlfluff')
# 設定ファイルがないので、このフックは何もしない
exit 0
end
@cnosuke
cnosuke / create_k8s_client_cert.rb
Created May 25, 2018 09:56
Script to create kubernetes client certification
#!/usr/bin/env ruby
require 'json'
require 'base64'
require 'tempfile'
def request_json(cn)
{
"CN" => cn,
"key" => {
WEATHER_API = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'.freeze
require 'json'
require 'open-uri'
module Filter
class WeatherBot
def update(p)
return nil unless p['text'] =~ /^\:weather/
{
username: "Weather",
text: forecast
@cnosuke
cnosuke / Rakefile
Last active August 29, 2015 13:56
論文をLaTeXでパパーンと書き出すためのRakefile
file = ENV['file']
out_dir = ENV['out_dir'] || './out'
time_format = ENV['time_format'] || "%Y-%m-%d_%H-%M-%S"
task :platex do
cmd = "platex #{file}.tex"
abort unless system(cmd)
end
task :dvipdfmx do
@cnosuke
cnosuke / builder.rb
Created February 16, 2014 18:53
TeXで原稿書いててファイルの更新検知してPDFに整形して欲しくてさっと書いた。そのうちもうちょっとマトモにする(意識が高まれば)
def timestamps
Dir::glob("**/*").map{|f| File::mtime(f)}.join
end
def do_cmd
open("|platex paper_all.tex && dvipdfmx paper_all.dvi")
end
t_ = ''
loop do
Pry.config.prompt = [
proc {|target_self, nest_level, pry|
nested = (nest_level.zero?) ? '' : ":#{nest_level}"
"[#{pry.input_array.size}] #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}(#{Pry.view_clip(target_self)})#{nested}> "
},
proc {|target_self, nest_level, pry|
nested = (nest_level.zero?) ? '' : ":#{nest_level}"
"[#{pry.input_array.size}] #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}(#{Pry.view_clip(target_self)})#{nested}* "
}
]
@cnosuke
cnosuke / gist:7299542
Last active December 27, 2015 08:49
bitcasaにHTTP/HTTPSで任意のファイルをぶっ込む。 例はhttp://lab.cnosuke.com/example.pngをダウンロードさせている。 URLencodedな形でURLを指定して、sessionid=に自分のセッションIDをぶっ込めばOK。 セッションIDはmy.bitcasa.comにログインして調べる。
curl 'https://my.bitcasa.com/uploader/download-to-bitcasa' \
-X POST \
-d 'file=http%3A%2F%2Flab.cnosuke.com%2Fexample.png&cookies=%5B%5D'\
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8"\
-H "X_REQUESTED_WITH: XMLHttpRequest" --cookie "sessionid=YOUR_SESSION_ID";
require 'benchmark'
require 'msgpack'
require 'redis'
require 'json'
r = Redis.new
h = { a: 'hoge', b: 100, c: true }
n = 50000
r.flushdb
@cnosuke
cnosuke / gist:6896318
Created October 9, 2013 04:43
Object#try and NilClass#try
class Object
def try(*a, &b)
if a.empty? && block_given?
yield self
else
public_send(*a, &b) if respond_to?(a.first)
end
end
end