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

暗黙の型変換

Ruby は暗黙の型変換をしてくれない気の利かない言語だと言われるが、なかなかどうして結構型変換してくれる。例えばこんな感じ。 "%d" % "0xff" # => "255" # 16進数を 10進数に変換して再文字列化 "%s" % 0 # => "0" # C 言語なら SEGV もの 試しにオレオ…

オブジェクトの等値性

ややこしいのでメモ。 equal? ふたつの式が指すオブジェクトが同一か? == ふたつのオブジェクトの値が等しいか? eql? ハッシュキーが等しいかどうかチェックするために Hash クラスが使う。 === case 文の when で使われる。 =~ 正規表現のマッチ。 equal? a…

オレオレクラスを ostream に出力する

C++

C++ プログラミング入門 によると、print() というメンバ関数を作って、operator class Foo { ... public: void print(ostream* out) const { *out << value; } ... }; ostream& operator<<(ostream& out, const Foo& foo); なんで print なのか? なんで ost…

クラスの雛形

C++

class Foo { // constructor, destructor and ... public: Foo(int val = 0): value(val) {} ~Foo() {} Foo(const Foo& src); Foo& operator=(const Foo& src); // accessor int getValue() const { return value; } void setValue(int val) { value = val; …

O'Reilly から T シャツ届いた。

O'Reilly のキャンペーンで \4,000- 以上買うと T シャツがもらえる。最近の T シャツはイマイチだなぁと思いつつも、欲しい本があったので購入した。 シルエットクイズ Unix システムパフォーマンスチューニング TCP/IP ネットワーク管理 あとのふたつが分…

インデントと TAB の宗教論争

職場の大先輩が「インデントに TAB とスペースが混ったコードは困る」とボヤいておられた。Emacs 使いの私からすると、何が問題なのか理解できない。 大先輩:「そういうコードは (俺のエディタで開くと) インデントがグチャグチャになる。」 ひがき:「TAB 文…

Microsoft のサポートが素晴しすぎる件

父の使用している PC が「Windows Vista に SP1 を当てると再起動を繰り返す」という罠に嵌った。 Vista SP1のインストールに失敗、起動できなくなりました 上記 URL のような現象になる。「システムの復元」を試みるも「権限がない」というようなエラーで失…

私が anything を使えない理由

理由は単純。 20 年以上も anything なしで Emacs を使っていたから。 ファイルを開こうと思った瞬間 指が勝手に C-x C-f してる。 バッファを切り替えようと思った瞬間 指が勝手に C-x b してる。 なので「anything 使うぞ!」と意気込まないと使えない。と…

USB メモリをいろいろ買ってみた

etc

最近は性能や価格でどうこう言っても代わり映えしないので、面白そうなのをいくつか買ってみた。 TDK Slim USB メモリ 本体裏のつまみで端子がスライドして出てくる。使おうとして PC に押し込むと端子が引っ込んでしまうことがある。 BUFFALO microSD カー…

ケブンッリジ関数

週末の第 34 回 Ruby/Rails 勉強会でこんな演習問題が出るんじゃないかと予想。Ruby 関西の ML で発言すると、またネタを潰してしまう可能性があるので、誰も見ていないであろう ここで ひっそりとやってみる。 適当にやると、こんな感じ。 class String def…

第33回 Ruby/Rails 勉強会 - 演習 2 - また修正

第33回 Ruby/Rails 勉強会 - 演習 2 - 修正 --- cat.rb 2009-05-11 18:28:58.552712500 +0900 +++ /cygdrive/g/cat.rb 2009-05-11 18:34:02.000000000 +0900 @@ -1,10 +1,7 @@ -#! /usr/local/bin/ruby19 +#! /usr/local/bin/ruby19 -EASCII-8BIT require 'o…

シェルスクリプトの真髄

部屋の掃除をしていたら、昔の UNIX MAGAZINE のコピーが出てきた。*1職場で Unix シェルスクリプトの講師をしていたときに、みんなに紹介したもの。 …… 私が初めて UNIX マシンや C 言語を触りだしたころのことです。 プログラミングの練習ということで、 …

絶対復習で eXtreme Reading

ひとりで eXtreme Reading ある程度、読み進んだら、気になったところのメモを取る。読み終えた章を絶対復習に登録。合計 4 回、復習できるので、適当に html に落としてゆく。復習しないと毎日 RSS フィードされてくる。連休に入って復習してないから、とん…

第33回 Ruby/Rails 勉強会 - 演習 2 - 修正

第33回 Ruby/Rails 勉強会 - 演習 2 no6v さんに指摘されたので修正。 --- cat.rb.org 2009-05-06 20:11:03.000000000 +0900 +++ cat.rb 2009-05-06 20:46:31.000000000 +0900 @@ -65,6 +65,7 @@ def squeeze_blank!(buf) buf.gsub!(/(\r?\n)\1+/, '\1\1') +…

DebugHacks&Tシャツ欲しい

オラの村 経由で知った。 『Debug Hacks』とTシャツが当たるプレゼント - 未来のいつか/hyoshiokの日記 O'Reilly の関連ファイルを見てみたけど、ちょっと難しいから、買おうかどうか悩んでた。当たらないかなぁ。T シャツ欲しいなぁ。ってか「書籍購入者に …

第33回 Ruby/Rails 勉強会 - 演習 2

第33回 Ruby/Rails 勉強会 演習 2 cat コマンドを実装してください。 see also cat(1) Mac は BSD cat なので、オプションはこれだけ。 でも usage の表示だけ GNU cat からパクってきた。#! /usr/local/bin/ruby19 require 'optparse' Encoding.default_int…

るびまのプレゼント当たった

また O'Reilly から T シャツが届いた。るびま 0025 号 の読者プレゼント。うれしい。

第33回 Ruby/Rails 勉強会 - 演習 1

第33回 Ruby/Rails 勉強会 宿題の添削はしてくれるんだろうか? 演習 1 CSV ファイルを分割します。分割数 n を指定できます。 読み込むファイル名を指定できます。 出力先ディレクトリを指定できます。 出力ファイル名のプレフィクスを指定できます。 なんだ…

第33回 Ruby/Rails 勉強会

久々の Ruby 勉強会。 今回は女子大生の参加も多かった。 今更はじめる Cucumber by Sixeight さん plain text でテストが書ける。 これはすごい。次回以降、実践編にも期待だ。 Ruby ではじめるハードウェア制御のアレコレ by keisuken さん パーツ購入方法…

refe.el を使う。

refe.el とは Emacs から ReFe を使うためのインターフェイス。最新版は …… たぶん公式に配布してるとこはない。*1手元にあった最新版と思しき refe.el を動かしてみると、候補の補完ができない。本来なら複数のクラスに存在するメソッドを引くと、クラスの…

ReFe で at_exit を引くとエラー

ReFe とは、Ruby の日本語リファレンスマニュアルを引くためのツール。昔は refe というコマンドがあったけど、現在はるりまの bitclust に取って代られた。詳しくは るりま Wiki を参照。 ところで refe コマンドは、どうなってるのが普通なんだろうか? コ…

リテラルの % 表記

普段使わないので、すぐ忘れる。リテラルを % 表記すると、任意の文字をリテラルの区切り文字に使える。 % 表記 式展開 例 ふつうのリテラル %q 不可 %q|foo| 'foo' %Q 可 %Q(foo) "foo" % 可 %[foo] "foo" %x 可 %x<echo foo> `echo foo` %w 不可 %w{foo bar} ['foo',</echo>…

O'Reilly の T シャツ届いた

O'Reilly の本って、なかなか買うタイミングがつかめない。 メールでキャンペーンを教えてくれるんだけど、その時点でキャンペーン開始からだいぶ日が経っている。 「数に限りが……」とか書いてあるんで、いつも「次回こそは!!」と思って欲しい本を買わずにい…

やっぱり rct-complete-symbol が動かない

最近 rcodetools に文句ばかり言ってて申し訳ないけど、やっぱり rct-complete-symbol が動いてないっぽい。マルチバイト文字を含む行で rct-complete-symbol すると、 # -*- coding: utf-8; -*- "こんにちは".enc # これは補完できる エンコーディングが ut…

anything-rcodetools 使ってみた

anything とは はてなキーワードの anything を参照。 anything-rcodetools とは anything を使って Ruby スクリプトの入力を補完するもの。例えば [].len を補完して [].length にしてくれる。 必要なもの anything.el anything-rcodetools.el FastRI るり…

rct-complete の Ruby 1.9 用クイックハック

rct-complete とは Ruby コードの編集中にメソッド名などを補完してくれる機能。 rcodetools に含まれる。Emacs で以下のコードを書いて、 "hello".enc M-TAB すると、 "hello".encod メソッド名の途中まで補完される。もう一度 M-TAB すると、メソッドの候…

MacPorts の clamav がまた不調

Mac

clamav を 0.95 にアップグレードしたら、 $ clamscan foo LibClamAV Warning: Cannot dlopen: file not found - unrar support unavailable LibClamAV Warning: ************************************************** LibClamAV Warning: *** The virus data…

MacPorts の perl5 と perl5.8

Mac

その後の MacPorts のその後。何もしていないのに、気がつくと、 $ port installed perl5 The following ports are currently installed: perl5 @5.8.8_0+darwin_9 perl5 @5.8.9_0 (active) $ port installed perl5.8 The following ports are currently ins…

非公開プロパティの探し方

Mac

Mac OS X 用のコマンドはプロパティを設定することでデフォルトの動作を変えられるが、公表されていないプロパティも少なくない。プロパティは文字列で指定するので、コマンドを strings にかけると非公開のプロパティも見つけられる。ところが Dock を調べ…

ひとりで eXtreme Reading

「プログラミング言語 Ruby」を読んでいます。今まで、このての本は html でメモをとりながら読んでいた。そうすれば後で検索できてお得。その代わり、気になるところを確認しながらなので、やたら読むのが遅くなる。この読み方だと疲れるので、メモは止めて…