A Day in the Life

2006-08-01

おれおれ perl レベル

今日で3ぐらい上がったな。ロマリア大陸に行けそうな勢いだ!

enumerator

さいこー

require 'enumerator'

p [1, 1, 1].enum_with_index.map {|e, index| e + index }
#=> [1, 2, 3]

某社

えええええ、あのひともあのひとも行くのか!アジャイルアジャイル!

pe 書いてると

yield というか、イテレータは偉大だなぁ、とか思う。使い回そうとして yield の代わりにサブルーチンリファレンスとかめどいを。。

今日の perl

for my $i @ary {
}

が何でエラーるかわからなかったyp!

css で変数を使う

ERb に喰わせて保存時 hook ればいけね、と思ったので昼休みにやってみた。できた。ERb の syntax が高級すぎてめどい、とかあるけど。

ダサイところが今のところ拡張子 .css が決めうちなのでコンパイラ通す前のテンプレート css が同一階層ディレクトリに残ってしまう。

~/.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_ruby')
  let g:css_pre_compile_ruby = '/usr/bin/env ruby'
endif

if !exists('g:css_pre_compile_name')
  " example *.pre.css
  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_ruby . ' -r erb -e "puts ERB.new(IO.read(%Q{' . filename . '})).result" > ' . compiled_filename)
endfunction

exe 'autocmd BufWritePost *.' . g:css_pre_compile_name . '.css call CssPreCompile()'

で、デフォルトだと *.pre.css を保存すると ERb が走って *.css ができあがる。ただエラー周り何にも行ってないので、ERb の syntax error がおきると css が真っ白になる、けどまぁ。

foo.pre.css

<%
  line = '3px solid red'
%>

pre {
  border: <%= line %>;
}

保存後、foo.css

pre {
  border: 3px solid red;
}

みたいな。

Aptana

毎度 Eclipce 系のインテリジェンスな補完はすげーと思うわけで。vim じゃないエディタ部なので使えないんだけど。vim は補完表示のウィンドウが 7 になって改善されたとはいえ、まだまだ、例えばドキュメントの一部を表示するときなんかはバッファ分割しないといけないわけで。

誰がため

でも、僕は、他の人の役に立つためとかにプログラムを書いてることは絶対にないな

自分のために書いたプログラムが他人にも役に立つという文化が。自分も世界が良くなるからプログラム書く、というより自分が興味がある、使いやすくなるから書くというときだけだなぁ、書くのは。あ、でも書籍系はちがうかー。

出社

出社と書くのを忘れる…。

ヒアドキュメント

http://pc8.2ch.net/test/read.cgi/unix/1008558940/794/

うひゃー。↑より転載。

function! g:GetHere() 
  redir => str 
  silent function g:Here 
  redir END 
  let lines = split(str, '\n')[1:-2]   " 前後のゴミ(関数宣言)を削除 
  let lines = map(lines, 'v:val[3:]')  " 行番号を削除 
  return join(lines, "\n") 
endfunction 

function! g:Here() 
ねんがんの ヒアドキュメント をてにいれたぞ 
endfunction 
let a = g:GetHere() 

function! g:Here() 
これは 
ヒアドキュメントです 
ウヒョヒョ 
endfunction 
let b = g:GetHere()

おうがすと

oh

記事の一覧 >