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

やっぱりエンコードが utf-8 だと xmp が動かない

elisp のコードも、Ruby のスクリプトも最新版にして、直ったと思ってたけど、直ってなかった。(;_;) cp932 でないと xmp が動かない 以下のコードは xmp できる。 # -*- coding: utf-8; -*- RUBY_VERSION # => "1.9.1" s = "\u20ac" s.encoding # => #<Encoding:UTF-8> 以下</encoding:utf-8>…

openssl が新しくなったらしい

Mac

MacPorts の更新を確認してみると、 $ port outdated The following installed ports are outdated: openssl 0.9.8k_0 < 0.9.8k_0バージョンがまったく同じに見えるんですけど。 $ sudo port upgrade openssl ---> Fetching openssl ---> Verifying checksum…

発表者募集中 - Ruby/Rails 勉強会 @ 関西

久しぶりに Ruby/Rails 勉強会@関西が開催されます。現在、発表者募集中。第33回 Ruby/Rails勉強会@関西のお題を募集します。日時: 2009 年 4 月 25 日 (土) 13:00〜17:00 場所: 京都女子大学 http://jp.rubyist.net/?KansaiWorkshop33募集締切りは 4 月 11 …

rct-complete-symbol できなくなった

最近 rcodetools の設定で、いつも rubikichi さんに助けて頂いている。 本当にありがとうございます。前回やっとのことで xmpfilter が動いたのだが、今度は rct-complete-symbol による補完ができないことに気がついた。以下のコードで M-TAB すると、補完…

cp932 でないと xmp が動かない

以下の簡単なコードを xmp してみると、 #! /usr/local/bin/ruby19 # -*- coding: cp932; -*- RUBY_VERSION # => "1.9.1" "foo" # => "foo" "foo".encoding # => #<Encoding:Windows-31J> "こんにちは" # => "こんにちは" もちろん、ちゃんと動く。ところが、これを utf-8 に変更す</encoding:windows-31j>…

暗い趣味

Mac

sudo port -v selfupdate port outdated 他の port に依存しない (と思う) ものを ひとつ選ぶ sudo port upgrade 他の port に依存していたらアウト 新しい port が無くなるまで繰り返す

Ruby の map reduce

世の中 map reduce 大流行。 Ruby では map は頻繁に使うけど reduce って使ったことない。と思って調べたら reduce って inject のことか。なーんだ。そう言えば map も collect って名前持ってたね。 Ruby 的な名前 一般的な名前 collect map inject reduc…

音楽の再生がひっかかる

音楽の再生中に CD の音とびのようになる (ことがある)音とびした箇所を聞き直すと、今度は音とびしないので、AAC ファイルが壊れている訳ではなさそう。最近、いろいろ環境を変えたので、何が原因なのか分からない。 PPC Mac mini から Intel Mac mini へ i…

migemo のインストールにてこずった

新しい Mac mini を買ったので環境設定中。 ruby 1.8.7 をインストール。*1 そして migemo をインストールしたが動かない。何を検索してもマッチしない。 [MIGEMO] Failing I-search: もちろん make check はパスしている。 $ make check Making check in te…

comment-dwim のその後

xmp meets elisp 昨日のエントリの comment-dwim は、あのままだと rcodetools とぶつかって、ruby-mode で => マークが付かなくなってしまう。defadvice の NAME を変えれば OK ... と思ったら、それに気付くより先に lispxmp がバージョンアップされて、co…

xmp meets elisp

xmpfilter のような自動注釈を Emacs Lisp で実現する lispxmp.el をリリース - '(rubikitch wanna be (a . lisper)) 早速 scratch バッファで試してみた。 (require 'lispxmp) lispxmp (+ 3 4) ; => Error in eval: (void-variable lispxmp) 2 行目 (requir…

Autorun の禁止チェッカー作ってみた

USB メモリを介して感染するウイルスが流行っているらしく、Microsoft からも対策か公開されている。 Windows で "Autorun レジストリ キーの無効化" の強制を修正する方法 指示通り対策はしたものの、本当にこれで大丈夫なのか不安。 確認する方法はないも…

結局迷惑メールかどうかは人間が判定しないと

いつものように spam フォルダを眺めていたら、*1「迷惑メールフィルタ・ウィルスチェックサービス提供開始のお知らせ」というのが目についた。迷惑メールを振り分けるために、複数の ISP や web メールのアカウントに届いたメールを Gmail のアカウントに集…

ダウングレードを検討

Mac mini がリニューアルしたのでポチッとした。 そして、ふと「Intel Mac だから Windows も動くんじゃね?」と思った。*1 そうすれば今使ってる ThinkCentre も処分できるし。Windows Vista は人気がないみたいなので、Windows XP をインストールしたい。 …

その後の MacPorts

Mac

MacPorts で Perl を upgrade できない これで解決したかと思ったけど、やっぱりなにか問題があるみたい。 $ sudo port upgrade installed ... ---> Activating perl5 @5.8.8_0+darwin_9 Error: Activating perl5 @5.8.8_0 failed: Image error: /opt/local/…

追記 (2009-03-01)

okkez さんに Kernel.__method__ を教えてもらった。 RUBY_VERSION # => "1.9.1" def foo __method__ # => :foo end def bar foo __method__ # => :bar end bar __method__ # => nil Ruby 1.8.7 でも、ちゃんと動く。

メソッドの中から自身のメソッド名を知る方法

Ruby で今実行中のメソッド名を知る - 趣味的にっき Ruby 1.8 の時は、こんな感じだった。 RUBY_VERSION # => "1.8.7" class Object def current_method caller.first.scan(/`(.*)'/).to_s end end def foo current_method # => "foo" end def bar foo curre…

WIN32OLE の例外は ASCII-8BIT

本格的に Ruby 1.9.1 に移行してみようと、仕事で使ってるユニットテストを動かしてみた。エンコード絡みのエラーが頻発。 Encoding::CompatibilityError: incompatible character encodings: Windows-31J and ASCII-8BIT もちろんスクリプトは CP932 で書い…

test/unit でテスト全体の setup と teardown

本格的に Ruby 1.9.1 に移行してみようと、仕事で使ってるユニットテストを動かしてみた。test/unit を素直に使うと、勝手にテストが実行される。*1これだと、テスト全体の前処理, 後処理を実装できない。 テスト全体の準備と後始末 Ruby1.8.x の頃は、 Test…

エンコーディングのつづき

ありがたいことに成瀬さんからコメントを頂いたので昨日の続き。 エンコーディング 結論から言うと、コメント頂いた通り、スクリプトを Windows-31J で書けば、何も迷うことはありません。環境変数 LANG が ja_JP.SJIS なのは間違ってるけど、Encoding.defau…

エンコーディング

Ruby 1.9.1 のエンコーディングをいろいろ試してみる。 #!/usr/local/bin/ruby19 # -*- coding: shift_jis; -*- RUBY_VERSION # => "1.9.1" ENV['LANG'] # => "ja_JP.SJIS" __ENCODING__ # => #<Encoding:Shift_JIS> Encoding.default_external # => #<Encoding:Windows-31J> Encoding.default_internal</encoding:windows-31j></encoding:shift_jis>…

ECHO の不思議

DOS

これも昔書いた「Unix ユーザのための DOS FAQ」まず簡単なバッチファイルを作る。 ECHO foo ECHO bar それを実行すると、 DOS> foo.bat DOS> ECHO foo foo DOS> ECHO bar bar DOS> _ いちいち実行するコマンドを表示してくれる。 プロンプトまで表示してく…

xmpfilter を実行するコマンドを Ruby 1.9.1 に変更したい

諸般の事情で今まで放置していたが、やっと職場の Cygwin 環境に Ruby 1.9.1 をインストールした。軟弱者なので --program-suffix=19 で作った。 $ ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin] $ ruby19 -v ruby 1.9.1p0 (2009-01-30 revi…

make の使い方

これも昔書いたもの。 make で何ができるのか? 実行モジュールを作るためのファイルの依存関係を定義。 タイムスタンプを比較して必要なものだけコンパイル。 一般的なコンパイル規則の提供。 コンパイル & インストール作業の抽象化。 make の魂 Unix の世…

プロンプトを出す。

ユーザに何か入力してもらうためにプロンプトを出したい。プロンプトは出力に混じらないように標準エラー出力に出す。 $ cat sample ... echo "Are you sure? " >&2 read ask case $ask in [Yy]) ... ;; ... $ ./sample Are you sure? _ echo にそのままプロ…

プロンプトの変更

DOS

コマンドプロンプト (いわゆる DOS 窓) を起動すると、プロンプト*1が現われてコマンドを受け付ける。 C:\Documents and Settings\higaki>_プロンプトにカレントディレクトリが表示されていて鬱陶しい。 変更したい。 プロンプトの変更 プロンプトは変数 pro…

ワイルドカード

普通はファイル名の指定に使うけど、case 文のパターンにも使える。 $ ls bar foo foobar food fool foot $ ls foo? # 1 文字にマッチ food fool foot $ ls foo* # 0 文字以上にマッチ foo foobar food fool foot $ ls foo[a-n] # 範囲内の 1 文字にマッチ f…

むかし書いたネタを放出

社内の勉強会で使った資料や、個人的なメモなど、公開できそうなものを小出しにしてゆきます。

プリプロセッサのための #

C

あるコードを見ていたら、こんなのが出てきた。 #if defined(XERCES_NO_NATIVE_BOOL) #ifndef bool typedef int bool; #endif #ifndef true #define true 1 #endif #ifndef false #define false 0 #endif #endif きしょくわる〜 # って 1 桁目じゃなくてもい…

VisualStudio のデバッグビルドではまった

あるライブラリを使おうとヘッダファイルを include したら、意味不明なエラーが出た。 (×) 1 error C2059: 構文エラー : '文字列' (×) 2 error C2091: 関数は関数を返せません。 (×) 3 error C2802: 静的なメンバ 'operator new' に仮引数リストがありませ…