2012年6月19日火曜日

Google電卓で立方根とか

ある数の累乗根を知りたいとき、Googleでなんて検索すればよいんだろう?

一般形
nth root of x
例(2th, 2nd, 3th, 3rd の違いは許容される)
  • 2th root of 5
  • 2nd root of 5
  • 3th root of 5
  • 3rd root of 5
  • 4th root of 5

平方根

square root x

square root of x

sqrt (x)

sqrt x

立方根

cube root x

cube root of x


2012年6月11日月曜日

coerce関数で型変換

Common Lisp で array を list に変換したいなー、と思って調べたら coerce という関数がみつかった。

CL-USER> (mapcar #'(lambda (x) (1+ x)) (make-array 4))
; Evaluation aborted on #<TYPE-ERROR expected-type: LIST datum: #<(SIMPLE-VECTOR 4) {1271CFBF}>>.
CL-USER> (mapcar #'(lambda (x) (1+ x)) (coerce (make-array 4) 'list))
(1 1 1 1)

Emacs Lisp にもありました。

(car [1 2 3])
Debugger entered--Lisp error: (wrong-type-argument listp [1 2 3])
  car([1 2 3])

(car (coerce [1 2 3] 'list))
1

"coerce"というのは他動詞で「〈人を〉強制[強要]して〔…〕させる 〔into〕」という意味が一番目。辞書を引くとけっこうseriousな例文が出てくる。"They coerced her into signing the contract." 「彼らは無理に彼女にその契約書に署名させた.」



perl -0777 による slurping

Perlでファイルの内容を読み込む場合、普通は1行ずつ処理する。

もし1行ずつ処理する方法が適当でない思ったら、undef $/ することによってファイルの内容をスカラ変数に一気に代入することができる。tこれを"slurping"と呼ぶ。

undef $/;
$whole_file = ;               # 'slurp' mode

Slurping は Perlコマンド実行時のオプション '-0777' でも有効にできる。今日まで知らなかったけど、ワンライナーの場合にすごく便利。

$ cat foo.txt
foo
foo
foo
$ perl -0777 -pe 's/o\nf//g' foo.txt
foooo

'-0'に続く数値は400以上であれば何でもよいのだが、777と書くのが慣例になっているらしい。詳しいことは参考ページに書いてある。


2012年6月7日木曜日

Windows Server 2003 の diskpart ってパーティション縮小(shrink)できない。GParted便利

Windows Server 2003 の diskpart

人生で初めて Windows server 2003(x64)を直接触る仕事を経験。Unix系じゃないサーバー機。ぼくも人生の荒波に揉まれてずいぶん大人になりました。

パーティションを切る必要があったけど、インストールやらネットワーク設定やらWindowsアップデートやらを一通りやった後でいいや、と思っていざやろうとするとできなくて焦った。というのは'diskpart'コマンド自体は入っているんだけど、Win server 2008 と違ってなんだかオプションが少ない。'shrink'も無い。


GParted

最初からやり直すのはしんどいのでいろいろと道具を探した結果、'GParted'というソフトがみつかった。ダウンロードしたISOをCDに焼いてブートして、GUIで自由に(たぶん、自由に)パーティションを設定できるというもの。

最初からやり直しになってもまあいいか、と期待せず使ってみるとこれがとても使いやすかった。そしてパーティション変更後も Windows server 2003 が正常にブートした。感謝。