Just another Ruby porter,

〜2008年1月上旬〜


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

2008-01-01 (Tue)

12月のspam

4800通ほど。過去最大は8000通弱だったけどこの以上は増えないもんなのか?
どこかでがんばってるところがあるんだろうな。

[TV] 人志松本のすべらない話

すっかり忘れてた。今頃見てないことに気づいた。
livedoor番組表のキーワードに登録しておこう。

[goruby] 昨日のgoruby

_区切りのメソッド対応。
ゴルフ的にはto_iがt_iで呼べるようになるのがうれしいか?

% goruby -e 'p "123".t_i' 
123

また、instance_variable_get, instance_variable_setみたいなのには特に有効。

% goruby -e 'instance_variable_set(:@foo,1); p @foo'
1
% goruby -e 'i_v_s(:@foo,1); p @foo'
1

setよりgetのほうが先なので単にi_vだとgetになってしまう。
しかしゴルフ的にはinstance_variable_setが使われることはたぶんない。


2008-01-02 (Wed)

[Golf] leap year

Vimで。とうとうループもどきで。EOFを検知するのが面倒だな。
とりあえず:h i_^Rが大活躍。


2008-01-03 (Thu)

[Vim] レジスタとマクロ

なぜかqで定義したものはyankとかで使われるレジスタとは
別の名前空間になると思っていた。
というわけで、 googleも解けた。
上には上がいるが。


2008-01-04 (Fri)

[Golf] ゴルフ場のgorubyが更新された

これで今までの追加機能が使えるようになった。

とりあえず1.8との違いを少し。

  1. readlineがreでいけるようになったので、getsより使えるようになった
  2. alias say putsなのでsでいける
  3. #!ruby -pやwhile getsよりは$<.m{|x|}で
  4. displayもdiいけるので使い途があるかもしれない(まだ使ってないが)
  5. やはりKernel#subとかなくなったのは痛い
  6. mapやzipがto_aの代わりに使えなくなったが、t_aでいいので問題ない
  7. *''よりは.jで
  8. hは卑怯だ(うろたんだー)

Kernel#sub等の削除でなかなか小さくならないと思われたが、
書いてみると結構縮むようだ。


2008-01-05 (Sat)

[Golf] vim golfでの注意点

なぜかゴルフ場と手元での結果が違うのでいろいろ調べてみたら、
~/.vimrcのどれかが影響してることが判明。というわけで、

% vim -u NONE

を推奨。ってあまりやってる人がいないわけだが。

[Bash] Bash: fast way to repeat string

これはなかなか面白いな。printf(1)は

引き数 format は与えられた argument すべてをコンバートするのに必要な回数分再利用される。

ということなので

% printf "#%.0s" {1..3}

% printf "#%.0s#%.0s#%.0s" {1..3}

と書いたのと同じになる。%.0sで引数は捨てられた形になるので、
最終的には必要な個数の#が得られると。


2008-01-06 (Sun)

[DVD] DVD LENS CLEANER

レンタルCD屋に無料レンズクリーナーがあったので試してみた。

世界初!!オーディオ機器を入口から出口まで、トータルにクリーニングする ハイテク・クリーナー登場

ってことらしい。 見た目は単にDVD-ROMに2個穴を開けただけの簡単なものでブラシは存在しない。

空気の流れを利用して回転により生じたエアストームが負圧の効果で加速しながらエアホールを通過し、 エアシャワーとなってレンズにピンポイント噴射。レンズを傷つける事なくリフレシュします。

とりあえず日本語でおkと言っておこう。

[Golf] leap yearをsedで

締め切り間際なのでsedで挑戦。
考えてみると4の倍数とか100の倍数は正規表現で比較的簡単にわかるのであった。
それをviへ移植してちょっと縮んだ。


2008-01-07 (Mon)

[Golf] leap year(sed)

なかなか良問だったようで、いろんな解が見れて楽しい。
sedで考えると結局のところ4の倍数は下2桁だけみればよくて

/[13579][26]$\|[02468][048]$/

と表現できる。100の倍数は

/00$/

なのでこれを組み合わせて問題の入力データで要らない組み合わせを除くと、
74B の解になる。
まあ、こんな姑息なことをしなくても トップの美しい解
どんなデータにも対応しているわけでまったくもって完敗だ。


2008-01-08 (Tue)

[Golf] Vimでright time

さすがにVimではむりだろうと思ったが、環境変数TZを設定すればいけた。
ただ環境変数の設定のしかたがなかなかわからない。
helpを見まくってやっと捜し当てた。

:let $TZ="right/UTC"

というように$でprefixすると環境変数になる。

:echo strftime("%F %T", 99999979)
1973-03-03 18:46:19
:let $TZ="right/UTC"
:echo strftime("%F %T", 99999979)
1973-03-03 09:46:17

で今なにげなく:h environmentしてみたらちゃんと出てくるじゃん。
まいった。


2008-01-09 (Wed)

[Ruby] 今日のgoruby

Array#to_sをjoinに、FalseClass#to_sを""に変更。

[Google] Bookmarkletでぐぐったらブックマークレットにもヒット

今日なにげなくbookmarkletでぐぐったら「ブックマークレット」も強調されてた。
知らなかったよ。


2008-01-10 (Thu)

[Golf] Dancing Kids

sed版をvimへ移植。
ついでに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!