2008-01-01から1年間の記事一覧

GNU GLOBALってYACCのファイルにも対応してるのか

Rubyのparse.yを解析しようとして非終端記号に対してgtags-find-tag-from-hereをやったら出現位置を全部リストしてくれた。GNU GLOBALはYACCのファイルも解析してくれているんだね。こりゃ助かる。もちろんanything-gtags.elを使っています^^どうぞ anythi…

grep-edit.el無双

複数のファイルにまたがる特定のパターンを置換する必要があった。そんなときにはEmacs使いならばgrep-edit.elがよい。M-x grepで置換箇所を出力して、M-x query-replaceで置換。これ最強。grep-edit無双。 unix wizardならばperlのワンライナーで置換するだ…

ブロックパラメータにおける配列と多値の違い

RUBY_VERSION # => "1.8.7" [:a,:b].each_with_index {|x| # !> multiple values for a block parameter (2 for 1) x # => [:a, 0], [:b, 1] } def y1() yield 1, 2 end y1 do |x| # !> multiple values for a block parameter (2 for 1) x # => [1, 2] end …

splat演算子の非互換

RUBY_VERSION # => "1.8.7" a = *1 a # => 1 a = *[1] a # => 1 RUBY_VERSION # => "1.9.0" a = *1 a # => [1] a = *[1] a # => [1] ぬぅー、このへんはあやふやだorz

Emacs22のプロセスサイズ257MiB、バッファ数533、文字数40M弱→富豪してます

Emacs22のプロセスサイズは約257MiB:VSZ=270472, RSS=263896 ;; バッファの総数 (length (buffer-list)) ; => 533 (#o1025, #x215) ;; バッファサイズの総和 (apply '+ (mapcar 'buffer-size (buffer-list))) ; => 39301115 (#o225727773, #x257affb) 日本…

結局mltermとmlclientを使うことに

rxvt系に浮気しようと思っていたが、結局mltermに戻った。mltermにserver機能があることを思い出したのでさっそくやってみた。すでに最初に立ち上げたmltermでは ~/.mlterm/main に daemon_mode=blend と設定してあるから有効になっている。あとは以後立ち上…

urxvtが速くて良いらしいので使ってみたが丸数字が化ける

EUC-JP環境なんだけど、urxvtを使ってみた。ふつうの日本語文字は問題なく表示できるのだが、丸数字が化けて困る。だめだ、ぐぐっても解決できない。諦めて普段通りmlterm使うか… 追記 krxvtならば丸数字も表示できる。mltermよりも速いのかな… $ krxvt -fn …

Emacs Lispでのワイルドカード展開関数

ワイルドカードを展開する関数がEmacs Lispには用意されている。 wildcard-to-regexpはワイルドカードを正規表現に変換する関数 file-expand-wildcardsはワイルドカード展開結果をリストで得る関数 (wildcard-to-regexp "*.el") ; => "\\`[^^@]*\\.el\\'" (s…

三平方の定理はMath.hypot・C言語でも使える

http://rubyist.g.hatena.ne.jp/kusakari/20081020/1224497314Rubyで三平方の定理を使う場合はMath.hypotを使う。hypotはhypotenuse(斜辺)の略。見かけないんだけど、あんま知られてないのかな。組み込みなのにね。 Math.sqrt(3**2 + 4**2) # => 5.0 Math.…

逆引きRubyをEmacsで編集するための設定

逆引きRubyをEmacsで編集するための設定を書いた。これで編集する人が増えてくれると嬉しい。http://www.namaraii.com/rubytips/?Emacs%A4%C7%CA%D4%BD%B8%A4%B9%A4%EB%A4%BF%A4%E1%A4%CE%C0%DF%C4%EA

初めてのRedmine

id:nurseさんの勧めで初めて Redmineを使ってみた。 プロジェクト「Ruby」に登録できなかったのでRedmineのチケットも登録しておいた。

逆引きRuby逝く→生き返った!

http://www.namaraii.com/diary/?date=20081018#p01逆引きRubyというRubyのTipsを集めたWikiが突然なくなった。namaraii.comの移転にともなうもので復旧予定はないらしい。572個もはてなブックマークがついてて、「便利」、「わかりやすい」等の賛辞を多くも…

anything.elが複数行対応になった

anything.elは通常、複数行ある候補を扱えなかったのだが、今回のリリースから複数行文字列も扱えるようになった。 Matsuyamaさん、パッチどうもありがとう。http://www.emacswiki.org/cgi-bin/wiki/download/anything.elからどうぞ。anythingの候補は文字列…

ontvjapanでテレビ番組のリストを得るスクリプトを修正

ontvjapanでテレビ番組のリストを得る - http://rubikitch.com/に移転しましたスクリプトを更新。バグ修正。

mp3gainをaptで入れる

Just another Ruby porter, 2008-10-bmp3の音量を正規化するコマンドmp3gain。 % mp3gain -k -d 96.0 foo.mp3で96dBに書き換えてくれる。バイナリはwindows用しかないが、 srcを取ってきてmakeすればLinuxでもok。 Debian GNU/Linuxならsudo apt-get install…

Rubyのsprintfは数字を3桁ずつコンマで区切る書式指定がない件

1,000,000等と表示することは多いというのに、いちいちgsub使うのはうざい。数字の表記方法でよく使われるのだからsprintfでサポートすべきだと思うな。スクリプト言語なんだし。sprintf.cと自前で実装してるんだからさ。 "%#d" % 100000 # => "100000" "%#x…

再起動したらkernel panicになったが解決

この前の再起動でkernel panicになってしまった。しかし、カーネルがアップデートされていないので「sudo dpkg-reconfigure linux-image-2.6.26-1-686」を実行してから再起動したらなおった。謎だ。 おそらくカーネルをアップグレードしてもなおるんだろうね…

DRb.start_serviceが激重

突然DRb.start_serviceするだけで5秒待たされるようになった。 $ time ruby -rdrb -e 'DRb.start_service' ruby -rdrb -e 'DRb.start_service' 0.02s user 0.00s system 0% cpu 5.036 total 原因不明。これじゃあdruby使えないよ><wineをコンパイルするた…

dbskkd-cdbが動かなかったのでinetdを再起動した

2ヶ月ぶりにマシンを再起動したらdbskkd-cdbが動いてくれなかったので、かなり悩んだ。inetdからskkservが起動するようになっているので、inetdを再起動したらなぜか動くようになった。謎だ。 $ sudo /etc/init.d/inetd restart 追記 ついでに ~/.zprofile …

String#gsub, String#split等は文字列パターンも指定できる

正規表現のメソッドだと思われがちなString#gsubやString#split、実はパターンに文字列を指定することができる。この場合は正規表現として解釈されるのではなくて、そのまま字面通りのパターンになる。初めて知ったよ。 'a+b'.gsub('+', '-') # => "a-b" 'a.…

/usr/share/emacs/22.1/lisp/の*.el.gzを展開してみた

Debian GNU/LinuxのEmacs Lispはなぜかgzip圧縮されて格納されている。GB単位のハードディスクが当たり前になってるというのになんでけちけちしてるんかと思う。1TBのハードディスクも1万円やそこらである御時世、ストレージの値段は安い。ケチケチすんなと…

anything.elでもうひとつのpersistent actionを定義する方法

前置引数でpersistent-actionを追加する http://www.emacswiki.org/cgi-bin/wiki/AnythingSources にておもしろい情報源が定義された。「Double persistent action for anything-c-source-buffers」だ。本来ならばひとつしか定義できないpersistent-actionに…

cheatコマンド(チートシート)のanythingインターフェース

http://blog.netswitch.jp/articles/2008/09/25/zsh-completion-for-cheatでcheatコマンドを知る。cheatコマンドは主にRuby関係のチートシートを集めたサイトのコマンドラインインターフェースのようだ。現在392個のチートシートが参照できる。zshの補完を試…

emacsからgoogle code searchを引く

プログラミング中に関数・メソッド・変数等の具体的な使い方がわからなくなったら、とりあえずgoogle code searchを引くとよい。そこで、emacsの中で現在のメジャーモードに合わせた言語でgoogle code searchを引くEmacs Lispをでっちあげた。要emacs-w3m。M…

怪しいメールは電子メールウィルスだった!

なんか怪しいメールが来た。トロイの木馬の踏台になってるとかどうとからしい。最後に「The ruby-lang.org team.」と書かれてあるから、てっきりRuby鯖の管理人から来たのだと思った。 Subject: Returned mail: see transcript for details From: "Mail Admi…

使い捨てコード用のファイルを開く

思い付いたら即コードを書けるように、しかし*scratch*や/tmp以下に書いてもすぐに消えてしまうのでもったいない。どうせだったら後学のために保存しておこうと思った。http://read-eval-print.blogspot.com/2008/09/emacs.htmlより触発された。ほとんどぱく…

RSSはそーゆーもの

http://d.hatena.ne.jp/piyo2-moko/20080920#1221904421 はてなに限らず、こう更新されてそれがすぐにrssに反映されないようなかんじ。 更新されるたびにすぐにRSS(XML)を更新したら、更新頻度があまりに多くて負荷がかかってしまうから、一定時間ごとに更…

anything.elはcl関数を使う

cl関数は便利なのがおおい... unionとかremove-ifとかset-differenceとか...etc - IMAKADO::BLOG anything.elは将来的に (require 'cl)をeval-whenで囲むようにする予定とかあるのかな...予定があるのだったら移行する時のためにsource書くときにcl関数使わ…

WWW::MechanizeでリダイレクトされるURLを開くと複数回戻る必要があるっぽい

http://www.ruby-lang.org/は http://www.ruby-lang.org/en/ にリダイレクトされる。 $ wget --spider http://www.ruby-lang.org/ --19:12:06-- http://www.ruby-lang.org/ => `index.html' Resolving www.ruby-lang.org... 221.186.184.68 Connecting to ww…

anything-c-source-bmをさらに改造

Visible Bookmarks 用 anything-source - プログラム番長のヲボエガキanything-c-source-bmはMatsuyamaさん作です:-)このままだと出現順に並ばないのでsortしておいた。sort*に:keyキーワードをつけるとそこに指定されたものが基準にソートされる。rubyでい…