vim xml
/ 入力したら自動で閉じタグを補完して欲しいなぁ。/ 入力後に Omni 起動とかできるのかな。
/ 入力したら自動で閉じタグを補完して欲しいなぁ。/ 入力後に Omni 起動とかできるのかな。
外部からグラフデータとれないのかな
ひさしぶりに JS 書いたら : を => って書いた。
Array#reject みたいなのってないのかな。filter がソレっぽい。けど、サンプルがなくてわからん。ので、書け
data = filter(function (i) {
return (i[1] != 0);
}, data);
http://www.liquidx.net/plotkit/
MochiKit をフレームワークとして使い、canvas やら VML やらを駆使してクロスブラウザに綺麗にグラフを書いてくれる。綺麗だし、うまく配置してくれる。のに、なんか情報が少ない。なんでだろ。
あとグラフのラベルにリンクとか、イベントハンドリングを追加したいのでいろいろ調べてみる。
コメントもらったお>< キャー
http://www.mochikit.com/doc/html/MochiKit/Iter.html#fn-ifilterfalse
inoremap / /<C-X><C-O>これもうまくいった!! すっげやっべ
/ 入力で直前が < のときだけ omni する関数?
script から ofun を呼ぶ方法調べないと
pie の場合だと label に要素を使えないっぽい。バグ?
"xTicks" : [
{v:0, label:A({href:""}, "foobar")}
]bar ではうまくいく。pie だとなんか文字列変換される。
Layout.js
label += " (" + formatter(slice.fraction) + ")";これのせいで、文字列に変換されてる。さてどうするかな span でくくって付け足すが妥当か。
$ diff -u Layout.js.old Layout.js
--- Layout.js.old 2006-06-05 03:50:02.000000000 +0900
+++ Layout.js 2006-08-03 17:42:07.000000000 +0900
@@ -617,7 +617,7 @@
if (slice) {
if (isNil(label))
label = tick.v.toString();
- label += " (" + formatter(slice.fraction) + ")";
+ label = SPAN(null, label, " (" + formatter(slice.fraction) + ")");
this.xticks.push([tick.v, label]);
}
}こんなんにした。
川o・-・)<2nd life - ファイル保存時に ERb でコンパイルして保存
これの別方向バージョンです。 (最近こんなんばっかだ。パクりマンセー)
CSS 特化でいいかなぁとか思いつつ簡単なスクリプトを通して置換するだけっていうのをやってみることにしました。ERB にせよ、なんにせよ、クライアントサイドでやってる限りは書いてる人の好き放題なのがいいところです。ERB のほうが別の場合も常に使えていいんですが。
#!/usr/bin/ruby
pre = File.read(ARGV[0])
vars = Hash[*pre.scan(/^\s*\*\s+([^\s;]+)\s*=\s*(.+$)/).flatten]
#p vars
ret = pre.gsub(/\#\{([^\s;]+)\}/) do |match|
if vars.key?(Regexp.last_match[1])
vars[Regexp.last_match[1]]
else
match
end
end
File.open(ARGV[1], "wb") {|f| f.puts ret }
第一引数に変換する前のファイル名、第二引数に変換したあとのファイル名を与えます。
vim 側は id:secondlife さんのやつを完全パクりでお送りいたします。指定した実行ファイルに保存時、ファイル名を与えて実行するだけ。~/.vim/plugin/css_pre_compile.vim
if v:version < 700 || (exists('g:loaded_css_pre_compile') && g:loaded_css_pre_compile || &cp)
finish
endif
let g:loaded_css_pre_compile = 1
if !exists('g:css_pre_compile_exec')
let g:css_pre_compile_exec = '/home/cho45/proj/mendoi/compile-css.rb'
endif
if !exists('g:css_pre_compile_name')
let g:css_pre_compile_name = 'pre'
endif
function! s:CssPreCompile()
let filename = expand('%:p')
let compiled_filename = substitute(filename, '\.' . g:css_pre_compile_name . '\.css$', '.css', '')
call system(g:css_pre_compile_exec . ' ' . filename . ' ' . compiled_filename)
endfunction
exe 'autocmd BufWritePost *.' . g:css_pre_compile_name . '.css call <SID>CssPreCompile()'
でもって編集する CSS
/*
* * Colors
* key-color-dark = #123456
* key-color-light = #234567
*
* * Images
* imgdir = /img/hogehoge
*
* * Other Constants
* content-x-margin = 5%
*/
h1 {
background: #{key-color-dark} url("#{imgdir}/head.jpg") no-repeat top left;
height: 235px;
width: 50px;
}
/* 諸事情で #content に padding が指定できないとか */
#content .section {
margin: 0 #{content-x-margin};
}
#content .h2 {
margin: 0 #{content-x-margin};
}
#footer {
background: #{key-color-dark};
color: #fff;
}
#footer address {
color: #{key-color-dark};
background: #{key-color-light};
}
この場合頭に書いた宣言部分は消えないので、キーカラーを最初に明示しておく、なんてことが自然にできます。そういえば自分はよく色の頭二文字ぐらいを覚えて動的補完カマして入力するんですが、最初の二文字さえ最近覚えるのがダルイです。
ちょっと使ってみよう。が、しかし、すぐに使わなくなる予感が! といっても一回放り込めば使って悪いことはないので使えるかな。わからない。一ファイルで完結していないのがイマイチ。オートリロードとの兼ね合いもあるかも。あれダメダメじゃん。
Ruby 限定にするなら、探し出した変数宣言を module_eval とかで読み込んで、eval("<<EOF\n#{file_content}\nEOF") みたいなことやってもいい? 式が書けるようになるけど、エラーでてもわからなく。移植性が落ちる。
でもやっぱ。ERB のほうがループとかも書けていい気がする。<% が打ちにくいからそれだけなんとかできればいいような気もする。ねむい
ううん
もっと wkwktktk したことをしたいなぁ。もっと
Linux デスクトップで 256color やろうとするとどうもうまくいかない。xterm を
./configure --enable-wide-chars --enable-256-color --enable-luit
でコンパイルして
xterm -fa Mono -fs 9 -fg white -bg black
とかで起動するといちおうよさげなんだけど、描画が遅すぎて使えない。
putty 使いたいなぁ。
Fx だけちょっと違うレンダリングするなぁ。Opera と IE はこの辺かなり似た解釈をしているようだ。
Fx だけボーダーがやたらズレて困る。Fx だけに適用するハックとかしらないしなぁ。
mlterm をいれてみる
$ ./configure --enable-anti-alias --enable-optimize-redrawing --enable-scim
で make; sudo make install
がしかし 256colors2.pl 実行すると確実にフリーズする。optimize-redrawing が悪いのかと思い外してみてもだめだった。
今日のぶんは手動で逆にしたよ!
追記モードっていう隠し機能があるらしい。上上下下左右左右BAを設定画面で押すとチェックボックスが現れるようだ。知らなかった。
どうも C-z C-z (screen の window スワップ) 押すつもりで ZZ 入力して終了させてしまう。
帰宅して ubuntu (バイト先は FC5) の apt で入れてみたけどこっちも 256colors2.pl がフリーズする。諦めよう。
gmail のほうのソレっぽいアドレスは本名用に使うことにした。
OCN のカスタマサポートページ重すぎ
こう、やっぱり、夏制服の髪が肩まである女の子が、プールサイドに立ち尽くしてミナソコを見つめているんだよなぁ。ほんとに。その俺が見ている風景の中では、少し遠くに見える木と、彼女の髪とスカートが少し揺れてるわけで、そんな世界に生きているのだから、リアリティ、というものはリアリティでしかなく、本当に、それがリアルであったりしなくてもいい、みたいに感じる。つまり「憧れ」が常になくちゃいけないけれど、それがリアルにないし、ないのは仕方ない。
リアルであれば、俺は高校のとき、何かしら向上的で一体感のある部活に入って何かをしたかった。今もしたい。もちろんその「今もしたい」というのは、今の状態でそれをしたいわけではなく、高校生になって部活動をしたい、という意味。そして正直いって、それ以上の何かはない。だから、このリアルな何かはまず叶わない (時間をとぶことは不可能だからね)。この時点で一つ諦めが必要。しかたないから、それっぽい目標・目標とはいえない目標を「てきとー」に掲げるしかない。死にたいわけじゃないからね、死にたいと思うとき、同時に生きたいと思ってる。よりよく生きたいのに、できないから死にたくなる。
どうでもいい。どっちにしろ、望んだ世界において、俺は俺ではない。ので、そういう意味では、考えることが、本当に意味がないことなんだろうなぁ。俺がそういう情況になるためには、それまでの環境構築 (すなわち自分の構築) の過程で、今の俺のようなことになってはいけない。それは既に俺ではない。環境=自分の反射/自分=環境の反射なのだから、そういう世界のそういう環境にいる俺は、常に俺ではない。
オレッテバ・ス・ゲー
必要なこと
アップロードフォームとかカス。HTTP ダウンロードはまぁいいよ?
だとするとやっぱ dav と svn とかしかない? でも dav もそんなにいい UI があるわけじゃない。いやいいのかなぁあれ。フォームよりはいいけど、うん、うぃんどうずのお話だよ。そうさ。
なんか唐突に lftp の open が失敗するようになった。
$ lftp lftp :~> open s63.xrea.com open: ftp: no such tcp service
lowreal.net の日記がさらに書きにくくくく。XML 書くだけで最近ダルイのに。もう Trac Wiki 記法で殆ど書きたい。マークアップとか無駄無駄。でも ill-wormed はやめて! パースできないから!
RDF でなんでもやりたいよなぁ。ホントに。
cygwin の setup.exe を実行したらなおった。っぽい。他でえらーでてたのが気になるけど。
PHP 使えっていう声が聞こえる。
マークの使いかたわからなくて、使わないようにしてたけど、耐えられないので覚える。
これだけでいいや
バッククオートふたつが便利だなぁ。前いたところに戻る。
:s が楽しい。V で選択して範囲内いっかつ置き換えが楽しい。どばーんって。xyzzy だと C-SPC C-n C-r TAB TAB Alt-R C-w とか長い手順ふむもんなぁ。
http://subtech.g.hatena.ne.jp/secondlife/20060801/1154406385
wktk
コメントで変数宣言してそれはそのまま残しておくと、色とかを頭に書くとかも自然に同時にできる。ERB だとめんどいので軽いパーサ書いてあげるのがよさそう。
/*
* key-color1 = #708f96
* key-color2 = #123456;
*/
h1 {
background: $key-color1;
}
#footer {
background: $key-color1;
color: #fff;
}
#footer address {
color: $key-color1;
background: $key-color2;
}$ って使われたっけ
#!ruby
pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+(\$[^\s;]+) = (.+$)/).flatten]
ret = pre.gsub(/\$[^\s;]+/) do |match|
if vars.key?(match)
vars[match]
else
match
end
end
puts retハイパー簡略化、が、これだと変数宣言も置換される!
やっぱ結構めんどいなぁ。ディレクトリを変数にしたい! とかだとこれでは無理だ? #{var-name} で展開にしたらいいのかな
/*
* [key-color1] = #123456
* [key-color2] = #234567
*/
h1 {
background: $key-color1;
}
#footer {
background: $key-color1;
color: #fff;
}
#footer address {
color: $key-color1;
background: $key-color2;
}#!ruby
pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+\[([^\s;]+)\] = (.+$)/).flatten]
ret = pre.gsub(/\$[^\s;]+/) do |match|
name = match.sub("$", "")
if vars.key?(name)
vars[name]
else
match
end
end
puts ret
#!ruby
pre = ARGF.read
vars = Hash[*pre.scan(/^\s*\*\s+\[([^\s;]+)\] = (.+$)/).flatten]
#p vars
ret = pre.gsub(/\#\{([^\s;]+)\}/) do |match|
if vars.key?(Regexp.last_match[1])
vars[Regexp.last_match[1]]
else
match
end
end
puts retううーん?
とかやってると、なんか変な CSS 書かなくなるなぁ。すぐにダメな書き方がわかるのはいい感じだ。ダメな書き方って変な話だけど。
#!perl
use strict;
use warnings;
my $pre = join "", <ARGV>;
my %vars = ($pre =~ /\* \[([^\s;]+)\] = (.+)$/gm);
$pre =~ s[#\{(.+?)\}]{$vars{$1} ? $vars{$1} : $&}ge;
print $pre;これだけ書くのに30分ぐらいかかった!! むずい。
:debug command
が表向きだよ。でも
:set verbose=9 :so %
まくり! って id:secondlife さんがいってた。ので、いくつか試してみよう。