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

続・続・継承の使い所がわからない

前々回の勉強会に出てきた例で、社員をインスタンス化しないなら、クラスじゃなくてモジュールにしてもいいはず。 module Shain @basic_salary = 0 def standup; @standup; end def bonus; kyuryo * 4; end def kihonkyu; @basic_salary; end def kihonkyu=(…

続・継承の使い所がわからない

その昔、オブジェクト指向が持て囃されたころ、「クラスを継承して変更したい部分だけ派生クラスに実装すれば簡単!」みたいな、いわゆる差分プログラミングが盛んに宣伝されていた。しかし最近では、この考え方はあまり支持されていないらしい。実際、仕事で…

継承の使い所がわからない

この前の Ruby/Rails 勉強会で TA をしたとき、図の派生クラスをインスタンス化して standup() メソッドを呼ぶという演習で、C++ や Java のプログラミング経験のある人に、次のような質問を受けた。 派生クラスをインスタンス化して、直接それぞれの派生ク…

C 言語でクロージャ?

C

昼休みに職場の先輩に Ruby/Rails 勉強会で聞いた関数型言語の話をちょこっと報告。 先輩は、ここ 20 〜 30 年は静的型付言語ばかり使っていて、クロージャの話をしたところ「コンパイラはどんなコード吐くの?」と興味津々。 いや、私に聞かれても (^_^;;そ…

第 27 回 Ruby/Rails 勉強会

Ruby 勉強会に参加しました。 関数型言語 Ruby by keisuken さん Ruby は関数型言語として設計された訳じゃないけど、そこそこ関数型言語っぽく使えるよ (という話かな)見た目がどうこうじゃなく、関数型言語の考え方とその効果を Ruby でも利用しよう (とい…

数字を数値に変換

C 言語のヘッダファイルをパースして、特定の define 文から Hash に変換するという地味な作業をしていた。 C 言語では、数字の前に 0x が付いていれば 16 進数。数字の前に 0 が付いていれば 8 進数という意味になる。 この数値リテラルのルールは Ruby で…

split で末尾の空要素も欲しいとき

Ruby の String#split は末尾の空の要素を取り除く。 "1,2,3".split(/,/) # => ["1", "2", "3"] "1,,3".split(/,/) # => ["1", "", "3"] "1,,".split(/,/) # => ["1"] # 要素は 3 個のはずなのに どうせ空なんだし、どうでもいいよと思っていたけど、CSV フ…

ひと月の迷惑メール

1456 通。そして今日、偶然 Gmail Team さんからのメールに気付いた。 迷惑メールかと思ったら ○○さんからの "××" ってメールにはウィルスが付いてるから 取得せずに POP サーバに残しといたよ みたいな内容だった。なんて親切な。 今まで迷惑メールだと思っ…

Kansai.pm 第 9 回 ミーティングに参加してきた

Perl5.10 について id:lapis25 さん Perl5.10 はふつうに使えるらしい。 早速 MacPorts でインストールした。 脱 KENT 様方式 AzureStone さん最後に Perl で仕事したのは Perl4 だったので、私も KENT 様方式。非常に耳が痛い。 実用 Moose id:hakobe932 さ…

なぜか精度が落ちてる

ここ 2〜3 日、Google の迷惑メールフィルタの精度が悪い。 メーリングリスト宛の受信メールが 1 日に 5〜6 通、Spam メールボックスに落ちている。いつも忘れるのでメモ。 false positive 普通のメールを迷惑メールだと誤認する 冤罪 false negative 迷惑メ…

どんなオブジェクトなの?

いつも忘れるのでメモ。 id:raito3 さんに教えてもらった。どのクラスのオブジェクトか知りたいとき、 1.class # => Fixnum 3.14.class # => Float "foo".class # => String スーパークラスも含めて知りたいとき、 1.class.ancestors # => [Fixnum, Integer,…

メール転送自重

ISP のアドレス宛のメールを全て Gmail に転送するようにした。 迷惑メールを Google に弾いて欲しかったから。ところが大量の迷惑メールも転送すると、転送元 (ISP のメールサーバ) が迷惑メール発信元として Google のブラックリストに載ってしまうらしい…

第 26 回 Ruby/Rails 勉強会

第26回 Ruby/Rails勉強会@関西京都女子大学にて Ruby off Rails ストヤンさんの発表。 ストヤンさんの発表はいつも面白い写真が出てくる。 前回は mongrel (犬) が出てきたし、今回は FREEHUG とか rack の写真が出てきた。もちろん内容もイイ。 sequel ebb…

Ruby 1.9 をインストール

1.9 を試してみようなんて人は、OS に標準で入ってる ruby や、パッケージ管理システム下の ruby は使わずに、ソースを取ってきて自分で make install しているはず。 もちろん私も自分で make install してます。 $ type ruby ruby is /usr/local/bin/ruby …

PGP キーに Gmail のアドレスを追加した

PGP

長いことやってなかったんで忘れてた。 検索しまくる。次やるときのためにメモ。 $ gpg --edit-key higaki higaki のキーに登録してある uid が表示されて、コマンドプロンプトが現れる。 uid コマンドで uid を指定して、署名 (sign) したり、信用 (trust) …

ほんとだ、Struct って便利

そこでStructですよ - ’(rubikitch wanna be (a . lisper))最初は某有名ブロガーのエントリで見たんだけど、 data = [ {'name'=>'Foo', 'age'=>20, 'email'=>'foo@mail.com'}, {'name'=>'Bar', 'age'=>21, 'email'=>'bar@mail.net'}, {'name'=>'Baz', 'age'=…

本格的に Gmail を使い始めた

昔から使っている ISP のメールアドレスには、いつの頃からか大量の迷惑メールが届くようになっていた。1 週間で 300〜500 通くらい受け取るメールのうち、6割〜7割は迷惑メール。ISP が提供する迷惑メールフィルタは、From やキーワードを自分で指定しない…

selfupdate が失敗する

Mac

1 週間くらい前から MacPorts が更新できない。 $ sudo port -v selfupdate Synchronizing local ports tree from rsync://rsync.macports.org/release/ports/ receiving file list ... done ./ perl/p5-cam-pdf/ python/ ruby/ science/ sysutils/ .... zop…

第 25 回 Ruby/Rails 勉強会@関西

1 週間以上経ってしまったけど、感想などを書いてみる。 第 1 Session は、紅月さんによる Tomcat on Rails. JRuby で Rails を使う話。 私は Java には、まったく萌えないので、未知の世界。 こういう話をしてくれると有り難い。 デモがまったく動かなかっ…

第 24 回 Ruby/Rails 勉強会の宿題。

先生が添削してくれるらしいので書いてみる。ファイルの行数、単語数、文字数を数える。 def words(a) a.join.sub(/^\W+/, "").split(/\W+/) end a = ARGF.readlines puts "#{a.size} lines." puts "#{words(a).size} words." puts "#{a.join.size} characte…