Just another Ruby porter,

〜2007年2月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2007-02-11 (Sun)

[Linux] mawk 1.3.3をインストール

あなごるのversion infomationsを見るとawkはmawkなので、
やはり同じもんがいいだろうとインストールを試みるもyumでは存在しないという。
ソースを取ってきてconfigureを実行すると

checking for -lm... no
checking for log... no
configure: error: Cannot find a math library. You need to set MATHLIB in config.user

と言われてしまう。古いautoconfで作られたconfigureだとFC6では合わないらしい。
configure.inもあるのでautoconf 2.59を実行したらなんかやたらと時間がかかる。
そのまま放っておいたら急に重くなった。
gkrellmを見ると使用メモリスワップ共に最大に張り付いてる。
これはやばい。が、もう時既に遅し。どうにもならなくなってしかたくリセット。
再起動後もう一度実行してtopで見てみたらm4がどんどん膨らんでいく。
これはm4のバグなのかな。頃合いを見て^Cで止めた。

面倒なので直接configureをいじることにした。問題なのは

configure:532: error: too few arguments to function 'log'

ってことなので引数に1.0を与えておしまい。これでmawkもインストール完。

[Soft] GDC - D Programming Language for GCC

About:
GDC is a D language front end for the GNU Compiler Collection. It supports a number of targets and nearly all features of Digital Mars D.

[Soft] FSVS

About:
FSVS stands for ?Fast System VerSioning?, ?File System VerSioning? or ?Full System VerSioning?. It aims to become a complete backup/restore tool for all files in a directory tree or whole filesystems, with a subversion repository as the backend.

2007-02-12 (Mon)

[AWK] mawkとgawkの違い

Square rootを解いてみると mawkとgawkの違いで大きな差になることがわかる。
というわけでmawkをインストールすることをすすめる。

[CodeGolf] 最終行を削除

行シリーズを出題。相変わらず簡単な問題。

[Soft] Bakefile 0.2.2

About:
Bakefile is cross-platform, cross-compiler native makefiles generator. It takes compiler-independent description of build tasks as input and generates native makefile (autoconf's Makefile.in, Visual C++ project, bcc makefile etc.).

2007-02-13 (Tue)

[AWK] split

ついsplitには正規表現を指定しがちなんだけど、

% gawk 'BEGIN{split("hoge",a,//);for(i in a)print a[i]}'
e
h
o
g
% mawk 'BEGIN{split("hoge",a,//);for(i in a)print a[i]}'
hoge

のようにmawkは//じゃだめなのだ。

% mawk 'BEGIN{split("hoge",a,"");for(i in a)print a[i]}'
h
o
g
e

のように""を指定するように。もうね、2日ぐらい悩んだよ。 ちなみにソートされてるように見えるのは短い文字列のうちだけなので使えないよ。


2007-02-14 (Wed)

[Mail] Subject: Linux is covered by the GNU General Public License (GPL), 後略

さすがにこんなsubjectのメールがきたら開くよねえ。
中身はダイエット関連のspam。そう来たか。
明日はもっと高くなるらしいよ。

[CodeGolf] sedであなごる

入力なくてもsedが使えるようになったから楽しい。
Smiley Triangle はサイズが同じだから同じなんだろうなと思ったら同じだった(くどい。

i:\n:-
s/$/:-)/
:l
p
s/$/))/
/.\{64\}/!bl

微妙に数値が違うけど、適当にそのあたりの数字を試しただけなので。
つねに行き当たりばったり。


2007-02-15 (Thu)

[CodeGolf] Hole in one

今日はsed版 Hole in oneを縮めた。

% echo 'ooo' | sed 's/o/x/2'
oxo

というのを使って。ピンポイントで置き換えられて気持ちいい。
これを元にawkで書き直してみたら2倍近くのサイズに。
s///pとsub();printじゃ比較にならないしなあ。
別の方法を考えないと。


2007-02-16 (Fri)

[Bash] heredoc

そのままで動くよ?バージョンの違いかな。

% cat x.sh
gawk '{print NR, $0}' <<"EOF" | nl
abc
$PWD
$TMP
def
EOF
% bash x.sh
     1  1 abc
     2  2 /tmp
     3  3 
     4  4 def
% bash --version
GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.

変数を展開させるなら"EOF"じゃなくてEOFで。

[CodeGolf] 行をrotate

出した後で行よりは文字のほうが面倒臭くてよかったかなと思った。


2007-02-17 (Sat)

[CodeGolf] multi_key sort

Rubyはgolfを考えなくてもこう書くという方法で。
PerlはSchw(ryで。AWKは、あ、まだか。明日解こう。


2007-02-18 (Sun)

[Vim] set binary noendofline

golfで1Bかせぐためにvim '+se bin noeol'するのは常套手段ではあるが、
すぐ忘れるし面倒になってきたんで~/.vimrcに

autocmd BufRead,BufNewFile *golf/* setl bin noeol

ってのを追加してみた。これで*golfって名前のディレクトリ配下のファイルが
勝手にそういう状態になる。
それにしてもnoeolってなんでbinaryじゃないと効かないんだろう?

[CodeGolf] awkでソート

multi_key sortの前にsort charactersをバケットソートからバブルソートへ変更。
10Bほど減った。しかしあと11Bもあるのか。うーむ。

あなごる

みんなまじめに解いてないんだなと安心した。
出題するときはoutputのサイズは多目にしよう。


2007-02-19 (Mon)

[AWK] awkでjoinとsplit

awkにはjoinがないが、$1,$2,$3,..へつっこんで$0で参照するとjoinのできあがり。
逆にFS="/";$0="hoge/foo"とすれば$1,$2で参照できてsplitもどき。
$を制するものはawkを制す。


2007-02-20 (Tue)

[穴] sort charactersでsed golf

結局sedでソートはしてない。というか無理、そんなの。
同じ文字がいっぱいあるので圧縮を試みた。
すぐに思い浮かぶのは

s/A/aaaa/g
s/B/bbbb/g

のように置き換えることだが、これは思ったほど縮まない。
そこでinfo sedしてみると\Lという素敵な機能を発見した。これにより

s/[A-Z]/\L&&&&/g

と書ける。すばらしい。あとは&の数はサイズが最小になる値を見つけるだけ。
それはRubyでone-linerで書いたんだけど、すでにない。

/H/c\ !,Hdellloorw
s|.*|..///:AAAABcccDDEEEEEeeeFGggggHHhhIIIijkkLLlMNNNNnnnOOOOoopppRrrrrSSSsssTTTTTTttUuvvvvWwyyy|
s/[A-Z]/\L&&&&&/g

正直sedだとこんなんばかり。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!