Hatena::Groupsubtech

#生存戦略 、それは

-> 06 { 09 / 27 }

rubyforge

22:42 | はてなブックマーク - rubyforge - #生存戦略 、それは

CPANと違って作っても上げようと思う気があんまわかんのがなぁ…。

AR のロード時間

21:37 | はてなブックマーク - AR のロード時間 - #生存戦略 、それは

ActiveRecord つかったコマンドラインツール作っても遅くて使えなさそうだよね、と思っているんだけど実測値は測ったことがないので測ってみた。

[2]$ time ruby -rlib/active_record -e ''
ruby -rlib/active_record -e ''  0.27s user 0.07s system 16% cpu 2.044 total
[2]$ time ruby -e ''
ruby -e ''  0.00s user 0.00s system 78% cpu 0.005 total
[2]$ time ruby -rlib/active_record -e ''
ruby -rlib/active_record -e ''  0.27s user 0.04s system 99% cpu 0.310 total

遅ぇ…。一回目はメモリ確保周り(?)で時間かかってるみたいだけど、普通使うときは突然であって2秒はなぁ。二回目も 0.3 秒かかってる。DB にコネクションはらなくてこれだしなー。はったらクラスジェネレートでまた時間かかりそうだし。

カレーな人の日記デザイン

19:49 | はてなブックマーク - カレーな人の日記デザイン - #生存戦略 、それは

と同じデザインのひとの日記を見て、転職云々って書いてあるけど切り口と毒舌さが全然違うなぁ、とおもったら全然違う人だった。カレー病(てきとう)である。

ruby で schwartzian 変換

18:37 | はてなブックマーク -  ruby で schwartzian 変換 - #生存戦略 、それは

ああそっか、記述見かけないと思ったらクイックソートだから必要ないの、か?

require 'benchmark/runner'
require 'digest/sha1'

class SortBench < Benchmark::Runner
  def setup
    @ary = (1..10000).to_a.map{|i| i.to_s}
  end
  def normal
    @ary.sort_by {|i| Digest::SHA1.hexdigest(i) }
  end
  def schwartzian
    @ary.map {|i| [i, Digest::SHA1.hexdigest(i)] }.sort_by {|i| i.last}.map {|i| i.first}
  end
end

SortBench.run 10

結果

                 user     system      total        real
schwartzian  0.840000   1.330000   2.170000 (  2.168033)
normal       0.720000   0.870000   1.590000 (  1.589423)

しゅなんとか変換かますと遅い。


cd で移動したディレクトリを screen のタイトルに表示

17:56 | はてなブックマーク - cd で移動したディレクトリを screen のタイトルに表示 - #生存戦略 、それは

cdlsのが流行ってるので僕も波に乗って設置だ!でもそれだけじゃ味気ないので screen に表示してどのディレクトリで作業してるのかわかりやすいように。

function chpwd() {
  ls
  if [ "$TERM" = "screen" ]; then
    echo -n "^[k[`basename $PWD`]^[\\"
  fi
}

これで screen の表示が

paprika 0 cpanp  1 v:functions  2 [public_html]

みたいにわかりやすいように。ちなみに v:functions は vim で functions ファイル編集中、の意。設定は前も書いた気がするけど

if &term =~ "screen"
  " screen Buffer 切り替えで screen にファイル名を表示
  autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | silent! exe '!echo -n "^[kv:%^[\\"' | endif
endif

みたいな。

vim でのパラグラフ定義シンタックス

15:37 | はてなブックマーク - vim でのパラグラフ定義シンタックス - #生存戦略 、それは

ってなんでないんだろうか?それがあれば

def method

  foo

end

とかを一つのパラグラフとして認識できて便利、な、の、に。

斎藤千和と小泉今日子

15:29 | はてなブックマーク - 斎藤千和と小泉今日子 - #生存戦略 、それは

の声が似ている、気がする。

RakuAPI

14:47 | はてなブックマーク - RakuAPI - #生存戦略 、それは

http://rakuapi.ddo.jp/

なんといってもすげぇのが phpシリアライズ形式で返すインターフェイスがあるところ。JSON があるなら php シリアライズがあってもいいじゃない!という発想は思いつかなかった。

これによって今後

  • Marshal.dump 形式 (for るば)
  • Data::Dumper 形式 (for ぺるら)

などなどの API が乱立するのであった(USO

Re: ls をうちまくる人へ

12:16 | はてなブックマーク - Re: ls をうちまくる人へ - #生存戦略 、それは

俺の場合これは実際にファイル名が見たいんじゃなくて、待ち時間の考え事中に無意識にうってる気が。history 見てると ls ls ls ll ls ls ls みたなのがあっておもしろい。何がしたいんだ(わら)。ファイル名が見たいだけなら cd [tab]でいいし。


部屋がほこりっぽい

10:20 | はてなブックマーク - 部屋がほこりっぽい - #生存戦略 、それは

換気してもだめで。たぶんベットとか机下などなどにつもった埃が原因なので週末掃除しよう。

mixi の行動ターゲッティングクッキー

10:19 | はてなブックマーク - mixi の行動ターゲッティングクッキー - #生存戦略 、それは

どっかではまちちゃんのようなチェイン日記をそこそこ有名な人が書いて、あたかも『有害なんで無効にするように』というのを書いたら流行りそうな村。ふつうに mixi を楽しんでいる人なんかはマッチングした広告が出ていいよね、たぶん。

ElimElim2006/09/27 14:42先生それディレクトリしか出ません!

secondlifesecondlife2006/09/27 14:48別の人にもつっこまれた!心の目で見るんだよ!!!

mohrimohri2006/09/27 15:14echo *

spiritloosespiritloose2006/09/27 15:28YahooのAPIもPHPのシリアライズ形式でだしてますよね。
http://neta.ywcafe.net/000544.html

secondlifesecondlife2006/09/27 15:36なるほど。そこそこ知られた手法なんですね。
所詮データのアウトプット直前の構造は高速に取得できるでしょうから、アウトプット形式が様々な物に対応していて柔軟な方がよさそうですね。

spiritloosespiritloose2006/09/27 15:52>パラグラフ定義シンタックス
'paragraphs'ってオプションがあるみたいですよ!
:h paragraphs
デフォルトは"IPLPPPQPP LIpplpipbp"だそうで。なんのこっちゃ・・・・
調べていじればできそうですね。

secondlifesecondlife2006/09/27 16:03ああ以前チャレンジして挫折したことを今思い出したので、あとはよろしくお願いいたします!!!

MarathonMarathon2006/09/27 18:37先生!もしかしてその人ls -alとか使いたいんだけど使い方が分からなくて連打してたんじゃ・・・

secondlifesecondlife2006/09/27 18:49ls を 0.1 秒間に三回打つと裏ファイルシステムが見れるという都市伝説を信じていた頃があったんですよ!ちなみに ll を打つことでやり直しが可能(USO)

walf443walf4432006/09/28 12:06>ああそっか、記述見かけないと思ったらクイックソートだから必要ないの、か?
Enumerable#sort_byのマニュアルに載ってますが、sort_byは
map {|i| i.hoge }.sort {|a,b| a <=> b }.map {|i| i.hoge }
とほぼ同じ意味ですので(少し早い)後者のコードはあまり意味がないようです。

明示的にschwartzian transformを行なう際は、sort_byでやるよりはsortを使った方が余分な動作がない分早いのではないかと思われます。ただ基本的にはsort_by {|i| .. }で十分のようです。
http://www.ruby-lang.org/ja/man/?cmd=view;name=Enumerable

secondlifesecondlife2006/09/28 12:09なるほど、補足 thx!

parasporospaparasporospa2006/09/29 13:45>パラグラフ
'paragraphs'はviからある古いオプションで、nroffのマクロを指定することしかできないようです。
http://d.hatena.ne.jp/parasporospa/20060722/1153564681

secondlifesecondlife2006/09/29 14:22どもども、ありがとうございます。