色
1から100までの数字を色を表わすとするとどういうアルゴリズムがいいんだろうなぁ。
小さいほど青で明度が低く、大きいほど赤で明度があがる? 彩度で雰囲気調整?
1から100までの数字を色を表わすとするとどういうアルゴリズムがいいんだろうなぁ。
小さいほど青で明度が低く、大きいほど赤で明度があがる? 彩度で雰囲気調整?
Photoshop では HSV の H を横に縦に出したやつ (たぶんもっともよくみる形のピッカー) しか使わないけど、実際どういう形が一番いいんだろうなぁ。いいっていうのは、直感的に選びたい色が選べるという意味で、だけど……
Windows 標準のカラー選択ダイアログもこれだった気がするけど、これは中間色がなんとなく選びにくい感じ。
やっぱ「あの色 (色相) の、こういう感じのトーン……」って選ぶからいちばんうえのっぽいのが一番使われているんだと思うけど、それにしてもこういう選びかたをさせるピッカーの形もいくつかある。
Painter の右にむいた二等辺三角形 (http://lowreal.net/2005/triangle-color-selector とほぼ同じだけど、正三角形ではない。等間隔になるように三角形の高さを底辺と合せてある) は結構好きだけど、ちょっと狭い感じがする。
http://www.ficml.org/jemimap/style/color/wheel.html こういうのもあるけど、意図がよくわからない。
ほかに色相環+そのなかに四角とかも見る。これは場所をとるのが欠点だけど、色相環がちゃんと環になっているのが好き。人気があるっぽいSAIもこれっぽい (もちろんピッカーの形で選ばれているわけではないだろうけど)。
あと関係ないけど、普通の人に「いい色」を選びとってもらうという用途で、別に全部の色を選ばなくていいんじゃね、というなら、例えば DIC カラーとかを参考にしつつ適当に抜いてくるとか、あるいは「日本の伝統色」とかジャンルわけでやるとかがいいのかなぁ。
じぶんはターミナルをほぼ全画面表示させているので、横幅が結構ながい。
そんなんで、ときどき右側にちょっと表示させたいなぁってことがあったりするのでそれのサンプル。
#!/usr/bin/env ruby
require "curses"
class Curses::Window
def puts(*msgs)
write(msgs.map {|m| m.to_s.chomp + "\n" }.join)
end
def write(str)
@data ||= ""
@data << str
setpos(0, 0)
l = maxy - 1
out = @data.split(/\n/).last(l).join("\n") + "\n"
addstr(out)
refresh
@data = @data.match(/(.*\n)*.*\n?\z/)[0]
end
def sync=(*)
end
end
Curses.init_screen
begin
win1 = Curses::Window.new(Curses.lines, (Curses.cols / 2).to_i, 0, 0)
win2 = Curses::Window.new(Curses.lines, (Curses.cols / 2).to_i, 0, (Curses.cols / 2).to_i+1)
Curses.refresh
$stdout = win1
$stderr = win2
load(ARGV.first, true)
ensure
Curses.close_screen
end$stdout と $stderr を画面半分ずつわけて表示させてみる。引数に ruby スクリプトをとる。
うえのをてきとうに double.rb とかで保存して http://lab.lowreal.net/trac/browser/c/mendoi/proxy.rb を実行させると、左にのっとりされたファイル、右にスキャンしたファイルが表示される。

(画面ちっちゃくして撮影)
$0 == __FILE__ やってるスクリプトはうごかないけど、とりあえず proxy.rb だけこうしたかった (ちゃんとのっとりできてるかわかりにくかった)
@data をちゃんとつめないとだめだ
http://lab.lowreal.net/trac/changeset/877
http://svn.coderepos.org/share/lang/javascript/userchrome/tumblr-multi.uc.js
ステータスバーに tumblr のアイコンがでる。クリックすると今までログインしたことのあるユーザ名が一覧表示され、選択するとそのアカウントでログインしたうえでブックマークレット発動
ログイン情報はパスワードマネージャから拾ってくるので保存されてないとつかえない。
Eval と SimpleReply 系を併用してつかってる人がもしいたらすぐ Eval のほうを無効にしてください。任意の IRC コマンドが放てます。
IRCNet にいた chokan は一旦落とし、Eval をロードしない状態でうごかしています。てら迷惑な chokan
もっとセキュアな eval を考え中
kill してとめて main screen turn on / got signal とかいうから、あれもしかして SSH で入ってシェル見てんのとか思ったりして tail -f /var/log/auth.log したりとか……
でもぱっとみは chokan 経由でしかやってなかったっぽいし、なんで signal でとめたのがわかったのかわからない……彼らからするとみえないはずなんだけどなぁ。chokan のログはとってなくて (表示させてるだけで、追ったときは screen のバックログ検索) ふかくおえない……
chokan は tiarra 経由でつないでて、chokan.rb を殺しても IRCNet 側的にはなにもおきない (これは CTCP で彼らはしってた)。Eval 経由ではソケットへの書き込みは $SAFE 的に一切できないはずだから (できるなら SimpleReply を経由しないだろう)、直接そこからどうこうしたってわけではないと思う……
直接 chokan に対してセッションをはれていたわけではないはずだから、SEGV させてうんたらってのはできないはず。SEGV させたら Eval がもう動かないし
直接セッションはらせる方法もあることはあるか……
DCCCache つかって CTCP SEND 投げて chokan に直接接続させて、ほげほげ? できんの?
とおもったけど、接続がきた時点で日付とか nick をふくめてファイルを生成しているのになんもできないからこれは使ってないっぽい。