Skip to content

Instantly share code, notes, and snippets.

View unak's full-sized avatar

usa unak

View GitHub Profile
@unak
unak / healthcheck_process
Created April 16, 2017 04:30
munin plugin to check process existence for NetBSD, implemented with Ruby
#!/usr/local/bin/ruby
PS = "/bin/ps"
keys = ENV.keys.grep(/^process_\d+$/).sort_by{|e| e.split(/_/, 2).last.to_i}
arg = ARGV.shift
if arg == "autoconf"
if keys.empty?
@unak
unak / rake_did_you_mean.rb
Created March 28, 2017 14:59
Show candidate when specified task name is not valid
begin
require "did_you_mean"
module Rake::TaskManager
def [](task_name, scopes=nil)
task_name = task_name.to_s
self.lookup(task_name, scopes) or
enhance_with_matching_rule(task_name) or
synthesize_file_task(task_name) or
(STDERR.puts "Don't know how to build task '#{task_name}' (see --tasks)";
candidates = DidYouMean::SpellChecker.new(dictionary: @tasks.keys).correct(task_name);
@unak
unak / test-bundled-gem.rb
Created December 2, 2016 04:03
How to test bundled gems?
require "rubygems"
srcdir = File.expand_path("YOUR RUBY SOURCE DIRECTORY")
Dir.glob(File.join(srcdir, "gems", "*.gem")) do |gem|
tmp = File.basename(gem, ".gem").split(/-/)
version = tmp.pop
name = tmp.join('-')
spec = Gem::Specification.find{|s| s.name == name && s.version.version == version}
@unak
unak / drawcmd.rb
Created November 10, 2016 13:44
drawcmd.rb
if ARGV.size != 1
warn "Usage: ruby #$0 <image file>"
exit
end
image_file = ARGV.shift.encode("utf-16le")
require "fiddle/import"
module Kernel32
RSTRLEN_MAX = 50
N = 10000
# user system total real
# ana1 0.109000 0.000000 0.109000 ( 0.104961)
# ana2 0.078000 0.000000 0.078000 ( 0.074173)
require 'benchmark'
def ana1(s1, s2)
require "open-uri"
URL = 'http://typhoon.yahoo.co.jp/weather/jp/earthquake/list/?sort=1&key=1&b='
START = Time.local(2016,4,14,21,15,59)
GRAPH = 'test.tsv'
HEADERS = %w[
熊本県天草・芦北地方
熊本県熊本地方
熊本県阿蘇地方
大分県西部
@unak
unak / delete multi bench
Created April 4, 2016 15:49
the former is normal trunk, the latter is multi-delete patched
D:\> type bench.rb
require 'benchmark'
REPEAT = 10_000_000
Benchmark.bm do |x|
x.report do
REPEAT.times do
[1,2,3,4,5].delete(1)
end
end
end
@unak
unak / class.foo.patch
Last active December 31, 2015 00:19
※あとで消す 第2版。手抜き。ripper用コードはあってるかどうか知らん。
Index: defs/id.def
===================================================================
--- defs/id.def (リビジョン 44137)
+++ defs/id.def (作業コピー)
@@ -1,5 +1,6 @@
# -*- mode: ruby; coding: us-ascii -*-
firstline, predefined = __LINE__+1, %[\
+ class
freeze
inspect
@unak
unak / random_mapper.rb
Created March 22, 2015 17:46
中点変位法によるランダム地形生成器
#!ruby
require 'zlib'
PNG = 'sample.png'
WIDTH = 192
HEIGHT = 192
# 中点変位法による基礎データ生成
d = [WIDTH, HEIGHT].max
m = 1
#define UNICODE
#include <windows.h>
#include <stdio.h>
int wmain(int argc, WCHAR **argv)
{
BY_HANDLE_FILE_INFORMATION info;
WIN32_FILE_ATTRIBUTE_DATA attr;
int ret = 0;
HANDLE h;