色
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 をふくめてファイルを生成しているのになんもできないからこれは使ってないっぽい。
あるアンテナから辿っておもしろい日記をさがしていたのだけど、はてなスターのボタンがついてないと「ああいいやスターつけられないし」とか思って閉じている自分に気付く。いけないいけない、と思って一セクションだけ読んでみるのだけれど、あんま面白くないことが多いので結局閉じる。
Fx 用にかいたのを Safari でもうごくようにしたいメモ書き
おれきづいたことがあるんだ。昨日夢で見た女の子のことが好きなんだ。
夢とグレープフルーツは情報で溢れている。
一昨日の深夜、コンビニにってグレープフルーツジュースを買い、帰り道にそれを飲んでいると、いろんなことが頭の中に流れ込んできた。あの夢はたぶんそのグレープフルーツジュースに含まれていた情報なんだろう。
設定を分離するために
javascript:(function (url) {
// hoge
})("http://example.com");みたいにしたりするけど、最後に書くのがちょっとだるい。ので、次のようなのを考えてみた。
javascript:"http://example.com".replace(/.+/, function (url) {
// hoge
});void("fumino");ちょっと長くなるのでぎりぎりの場合はつかえないけど、設定が前にでてくるので書きかえやすい。スクリプト要素追加系だと、中身は共通なのでこっちのほうが新しくブックマークレットつくりやすい (ささいな手間といえばそうだけれど)
これを使うとスクリプト追加系は以下のように
javascript:"url".replace(/.+/,function(url,s){s=document.createElement("script");s.charset="utf-8";s.src=url;document.body.appendChild(s)});void("san");
javascript:"url".replace(/.+/, function(url, s) {
s = document.createElement("script");
s.charset = "utf-8";
s.src = url;
document.body.appendChild(s)
});void("moe");わりとどうでもいいけど
var s=...と書くかわりに、仮引数を使うことでなんか気持悪いスペースを消してみてる。
複数の引数をとりたいときも同じように書ける。ただしデータの変換は関数内部でやることになるし、パースも自分で正規表現を書くことになる。でもたいしたこと書かないから問題ないとおもう。
"2222 81".replace(/(\d+) (\d+)/, function(_, a, b) { alert(Number(a)+Number(b)) });void("二次元にいきたい");
唐突に夢の内容を思い出した。今日の朝の夢だと思うけれど、桜並木 (ただし夏で、葉が青い) で、jkondo 氏と会話する。たぶんすれ違いざまに一言二言だったと思う。内容は覚えていないし、なんですれ違いざまに会話するのかもよくわからない。ただ、やっぱり、自転車にのってた。
いやでも本当にこれは夢の内容なのだろうか。今「夢で見たことがある」っていう記憶が生まれただけではないのだろうか。でもなんで

どっちだかわからなくて不安になるので (どうせ C-[ 連打するとはいえ) 検索したらすぐヒットした。http://www.zsh.org/mla/users/2002/msg00105.html
http://lab.lowreal.net/trac/changeset/871
でもこれだと毎回プロンプトだすときに INSERT とかでてうざったいので、preexec で前回表示したモード表示を消すようにしてみた。(数値きめうちなので、複数行入力するとおかしくなる。PREBUFFER とかつかえばいいのかな)
http://lab.lowreal.net/trac/changeset/872
でも preexec なので C-c とかやってプロンプトリセットしたりすると残ってしまう。
ほんとはプロンプトの下にだしたいのだけど、位置指定してほげほげしてると、INSERT -> NORMAL -> INSERT とかやったときひどいことになるので諦めた……screen の hardstatus に出すのがいいのかもしれないけど、なんかそれも違う気がしたので妥協
あと関係ないけど、C-p C-n がなぜかそのまま入力されてうざいので、それだけはバインドした。
http://lab.lowreal.net/trac/changeset/870 (bindkey -e; bindkey L ででてきた結果を適当につっこんだので ^O もバインドしてある。つかわない)
ML おってたらもっと簡単なのがあったのでそっちにへんこう
http://lab.lowreal.net/trac/changeset/873
なんか exec zsh を毎回やらないとエラーでるようになった。
書く順番書けたらなおった。cmp 系はあとのほうに書かないといけないっぽいのかな