history

青木日記 RSS

<前月 | 最新 | 次月>

2006-01-01

2006

あけおめことよろ!

そんなわけで 2005 年は SEGV で終わりました。 SIGSEGV は新しい年の到来を告げるシグナルということか。

(17:29)

cvs/svn/svk 自動切り替え

やっぱり面倒だ。 こないだ日記に書いた cvs/svn/svk 自動切り替えコマンドを書いてみた。 cvsc とか cvsdiffl みたいな独自コマンドも呼べることと、 svk ワーキングコピーの検出に適当感が蔓延しているのが特徴。

#!/bin/sh
# $Id: vs.sh,v 1.3 2006/01/01 17:52:06 aamine Exp $
 
guess_vs() {
    if [ -d CVS ]
    then
        echo "cvs"
    elif [ -d .svn ]
    then
        echo "svn"
    elif grep -q "`pwd`:" $HOME/.svk/config
    then
        echo "svk"
    else
        echo "not under control of CVS/SVN/SVK" 1>&2
        exit 1
    fi
}
 
cmd_suffix() {
    basename $1 | sed 's/^vs//'
}
 
`guess_vs``cmd_suffix $0` ${@+"$@"}

なんとなく不安ではあるが、いちおう使ってみよう。

……うーん、どうしても cvs と打ってしまうな。

(03:00)


2006-01-03

いつもの

新年早々、みかんが緑色のふさふさと化しているのを発見。

(11:38)


2006-01-08

殺伐と原稿書き

ネットワークを切断してブラウザもメーラも IRC も落とした、 ゆぞさん言うところの「殺伐とした環境」だと作業効率がとてもいいことがわかった。 インターネットに発する煩悩の数は 108 どころではないのだ。

さ、もう一回ネットワーク切ろっと。

(09:51)

ふつうの H

where を使えば部分適用なしでも fgrep が書けることに気付いたんだけど、 where で変数共有するのと部分適用じゃ どちらが理解しにくいかは微妙なところですな。 なんとなく、Java な人なら where のが簡単そうな気がするんだけど。

-- where を使う
import System
import List
 
main = do args <- getArgs
          cs <- getContents
          putStr $ fgrep (head args) cs
 
fgrep pattern cs = unlines $ filter match $ lines cs
  where
    match line = any prefixp $ tails line
 
    prefixp str = pattern `isPrefixOf` str
 
-- 部分適用を使う
import System
import List
 
main = do args <- getArgs
          cs <- getContents
          putStr $ fgrep (head args) cs
 
fgrep pattern cs = unlines $ filter (match pattern) $ lines cs
 
match pattern line = any (pattern `isPrefixOf`) $ tails line

うーん、部分適用があると関数合成も使いたくなってしまうな……。

ちなみに最終的にはこうなる。

-- 最終版
import System
import List
 
main :: IO ()
main = do args <- getArgs
          case args of
            [pattern] -> putStr . fgrep pattern =<< getContents
            _         -> error "wrong argument"
 
fgrep :: String -> String -> String
fgrep pattern = unlines . filter (match pattern) . lines
 
match :: String -> String -> Bool
match pattern = any (pattern `isPrefixOf`) . tails

(10:21)

俺がPC見ててやるからお前は安心して先へ行け

http://www.vector.co.jp/magazine/softnews/060107/n0601076.html

プログラム名がナイスすぎる。

(13:36)


2006-01-12

アレがキタ

ちょ…これ……待っ…………風邪っ

(18:09)

ruby-dev summary

でぶさまやらねば……

しかし気持ち悪すぎなので逆らわず寝る

(19:18)


2006-01-13

はやりものだし

まあ 7 度はあるだろうなあ、と思ってたら 9 度 3 分だった。 一回休み。

(09:12)


2006-01-16

仮復活

37 度後半まで下がり、歩けるようになったので復活してみる。 まさか 40 度スレスレが三日続くとは思わなかった。 あああ、週末がつぶれたおかげでスケジュールがさらにシビアに……

(11:22)

IBM

大学の友達で IBM という会社の存在を知らないやつがいて、 あまりの衝撃にかたまってしまった。

(11:57)


2006-01-22

NRKロゴ

http://www.seshop.com/event/dev/2006/community/

日本 Ruby の会のロゴを作ったほうがいいなあこれは。

(03:09)

本日のツッコミ (全1件) [ツッコミを入れる]

KM [つ http://jp.rubyist.net/?Logotype]


2006-01-23

shebang

JARP より http://www.in-ulm.de/~mascheck/various/shebang/

「#!」とパスの間の空白は実は必要ではなかったらしい。 なんかあれ好きじゃなかったし、setup.rb でも空白を入れないようにするか。

(18:59)


2006-01-30

C# 3.0 …… ではなくて

http://www-ise2.ise.eng.osaka-u.ac.jp/~iwanaga/study/csharp/ap_ver3.html

モブデータが絶望先生かよ!

(21:18)


<前月 | 最新 | 次月>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS