2009年4月28日火曜日

コマンドプロンプトでファイルを探す(リファクタリング)

コマンドプロンプトでファイルを探すをリファクタリング。
少しだけシンプルになったと思う。
locate.rb
#!ruby -Ku

module Locate
EXCLUDE_PATTERN = /^(\.|\.\.|\.svn)$/i

module_function
def locate(dirname, patterns)
each_entries(dirname) do |pathname, filename|
if File.directory?(pathname)
puts(pathname + '/') if match?(filename, patterns)
locate(pathname, patterns)
else
puts(pathname) if match?(filename, patterns)
end
end
end

def each_entries(dirname)
entries(dirname).each do |filename|
pathname = (dirname == '.' ? filename : File.join(dirname, filename))
yield(pathname, filename)
end
end

def entries(pathname)
Dir.entries(pathname).select do |filename|
filename !~ EXCLUDE_PATTERN
end
end

def match?(filename, patterns)
patterns.each do |pattern|
return true if filename =~ pattern
end
return false
end
end

if $0 == __FILE__
Locate.locate('.', ARGV.map{|pattern|Regexp.new(pattern, Regexp::IGNORECASE)})
end

2009年4月25日土曜日

SANYOのALBO


ホームネットワークビューワALBO
7インチの液晶をそなえた可愛いデジタルフォトフレーム+α
名前の通りデジタルフォトフレームの枠を超えた機能を持っている
Amazonでは31,320円で売っていた。
高い。
最近のデジタルフォトフレームはずいぶん安くなったので、比べてしまうと高い。
でもなぜか気になった。

2009年4月24日金曜日

DataスキームURI

DataスキームURIって
なんだかとっても
おもしろ~い。
<img src="data:image/png;base64,iVBORw0KGg...いっぱい省略..."/>
こんなんです。

2009年4月23日木曜日

即席 tail

Windowsなマシンでちょっと必要になったので書いてみた。

tail.rb
#!ruby -Ku

class Tail
def initialize(filename)
@filename = filename
end

def run
@interrupted = false
size = File.size(@filename)
size = print_head(size)
until @interrupted
size = print_diff(size)
sleep 0.5
end
end

def max(x, y)
x > y ? x : y
end

def print_head(size)
File.open(@filename, 'rb') do |f|
f.seek(max(size - 1024, 0))
print f.read
return f.tell
end
end

def print_diff(size)
latest = File.size(@filename)
return size if latest == size

if latest < size
puts
puts "truncated..."
puts
return print_head(latest)
end

File.open(@filename, 'rb') do |f|
f.seek(size)
print f.read
return f.tell
end
end

def interrupt
puts "^C"
@interrupted = true;
end
end

if $0 == __FILE__
tail = Tail.new(File.expand_path(ARGV[0]))
Signal.trap(:INT){ tail.interrupt }
tail.run
end

MS SQLServer の collation のメモ

必要になって調べてみたのでメモ。

■ 照合順序名の一覧

SELECT * FROM fn_helpcollations()

■ 照合順序の確認

○ Serverデフォルト値の確認

SELECT SERVERPROPERTY('collation')

○ データベース毎の確認

SELECT DATABASEPROPERTYEX('db_name', 'collation')

○ カラム毎の確認

sp_MSHelpcolumns table_name

■ 照合順序名の意味

Japanese_(BIN|(CI|CS)_(AI|AS)(_KS)?(_WS)?)

BIN (Binary)
→ 全て区別する

CI (Case Insensitive)
CS (Case Sensitive)
→ 大文字小文字の区別

AI (Accent Insensitive)
AS (Accent Sensitive)
→ アクセント、濁音、破裂音の区別

KI (Kana Insensitive)
KS (Kana Sensitive)
→ ひらがなとカタカナの区別

WI (Width Insensitive)
WS (Width Sensitive)
→ 文字幅の区別=全角・半角の区別

参考

RubyからGitをデータストアとして使う「Git Store」

RubyからGitをデータストアとして使う「Git Store」という記事をみつけた。
これは便利かも!

2009年4月22日水曜日

Webに3Dを by Google

GoogleのO3D。今後が楽しみです。

これまでもたくさん類似品はあったけど、GoogleがWebと3Dを本気で結びつけてくれそうな予感がするところに期待がふくらみます

OpenGLのポットが1000個、ぐりぐり回ってるのがブラウザで表示できてるのってちょっと面白かった。

ピンポンは途中でキーボードフォーカスが外れちゃったりとまだまだ初期段階っぽさ満載だけど。

可能性も満載な感じ。