Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ awkで頑張って真面目にやってみた。
死ぬほど長い。ダメだこりゃ。
_ rubyで頑張ってズルをしてみた。
手動圧縮は全然ダメだったので、諦めてzlibの力を借りる。
バイナリ列を文字列として通すのに無駄に苦労したが、通っちゃえばさすがに短い。
bashに負けてるのはZlib::Inflate.inflate
が長いせいだろうか。
いや、3つの結果文字列をくっつけて圧縮しておいて、これを展開してから分割した方が効率いいとかそういうことか?
でもこれ以上やるのめんどくさい...
_ あ、1B縮めたの登録したら(embed)って書き忘れた orz
_ めんどくさいとか言いつつ、くっつけたのを圧縮→展開してから分割、をやってみた。
圧倒的に短くなった。
~/h/||2
とか書くと自分が賢くなったような気がする。無論気のせいだが。
_ なんか夜が明けたら結果埋め込みじゃないのに負けてるな。
真面目にフォントデータ文字列から結果を生成した方が短かったのか...
_ mawkはord
ないしビット演算ないし/
が整数演算じゃないからあんまりやる気なかったのだが、頑張ってやってみた。
とりあえずダントツのビリ状態から、22:00現在でsedを抜くところまで来た。俺えらい。
PythonとCLISPまであと30Bくらいなんだが、さすがに無理ぽい。
_ でもどうにかする。awkスキーだから。
そのどうにかするロジックだけで37Bあるんですけど。くすん。
_ Rubyの方はあと1Bをどうすりゃいいのかよくわからんな。
ebanさんはやけに空白文字が多いなあ。
_ [ruby-dev:30463]を確認しようとして、$SAFE=1; a = "a".taint.intern
とかすると通ってしまうことに気付く。
_ 数日悩んだが、やっと理由がわかった。
ローカル変数a
があると、パース時点でインタプリタにシンボル:a
が登録される。
taint文字列のintern
が失敗するのは実はそこで生成されるはずのシンボルがまだ登録されていない場合だけなので、この例だと既に:a
が登録済みだから通ってしまう、というわけ。
_ この件は、昨夜道を歩いていて気付いた。
1Bどころか3B縮んだが、空白の数から考えるとたぶんこういう方向だったのだろうと思われる。
もっとも、時代はとっくにさらに6B縮んでいるのでお話にならないのだが。
_ そういや、awkの方は、計算部35B、出力部35Bの合わせて70Bまで縮んでいるのだが、この先どうしたものやら。
計算部は美しいのであまり触りたくないなあ。というわけで出力部か。
_ 深夜(というか未明)にお仕事でExcel2000で表を作る
↓
セーブしようとしたらExcelがクラッシュ
↓
今時Excel2000なのが悪い(*1)んだとお叱りを受ける
↓
Office2007はさすがにアレなのでとりあえずOffice2003にしようと考える
↓
Office2003からOfficeショートカットバーが削除されていることを知る
↓
しょうがないので代替品を作る ← いまここ
_ なお、Officeショートカットバーの代替になるフリーなアプリは幾つも世間に転がってることは知ってるのだが、欲しいのはOfficeショートカットバーそのもの(使ってない機能は削除していいが)なのでいまいち要求にがっちしたものが見つからなかった。
10年くらい昔に同じようなものを作ろうとしたときは苦労した上に挫折したのだが、現代だとAPIそのものが充実したのと自分が成長したのとのおかげで割とあっさりできた(所要時間4時間ほど)。
できたっつってもボタン並びを編集した結果を保存する機能が未実装なんだが、まあ必要になるまではどうでもいいや。
_ なお、Office2003はまだ入手手配してない。
問題の表の作成がどうなったかは読者のご想像にお任せする。
(*1) 今時Excel2000なのが悪い
Office XP以降ならクラッシュ時のデータ保存機能がある(らしい)。
_ ボタン並び編集結果の保存も作った。
これで、自分で使うのに必要な機能で、まだ作ってないのはボタン名変更くらいか。
要するにダイアログを出さないといけないのがめんどいので作ってないだけ。
ま、欲しくなったら作ろう。
_ 自分で作った副作用として、64bit WindowsでOfficeショートカットバーからは見えなかったディレクトリもやりようしだい(64bitコンパイルするとかAPIでほげほげするとか)で見えるようになった。
これはけっこう嬉しいな。
_ うーむ、awk、かなり頑張って、一瞬はやまやさんを抜いたんだけど、一瞬だったなあ。
自分のコードを眺めてるとあと2Bくらい削れそうに思うんだけど、思うだけで削れない。
_ Rubyの方は、最初はいまいちだったんだけど、一つ閃いてからは一気に短くなった。
どうもみんな全然違うアプローチで挑んでるっぽくて面白い。
被捕捉アンテナ類
[Ant]
[Antenna-Julia]
[Rabbit's Antenna]
[Ruby hotlinks]