2015年5月 3日 (日)

[本][Ruby] Effective Ruby (Peter J. Jones)

Effective Ruby

「やり方は一つじゃない。」し「多様性は善」だけれど、他のやり方より冴えたやり方があるということを教えてくれる本。 この本は、プログラミング言語Rubyの解説本であるが、初心者向けではない。一通り基本的なことを学んで、Rubyでプログラムを書けるようになってから読むべき本だ。

Rubyのことを順番に一から十まで系統立てて解説している本ではない。副題にもある通り、Rubyでプログラミングするときの48のコツを解説している。それぞれのコツは(関係しているものもあるが)独立しているので、ちょっとした時間に1つずつ読んでいくこともできる構成になっている。

Rubyでプログラミングするときのコツを解説している。こういう風に書くとこういう欠点があるので避けるべきだ。代わりにこういう風に書くべきだ。こういう便利な機能やメソッドがあるので有効活用しよう。こういうややこしい機能があるので気をつけよう。などなど。

以下、余談。Win32OLEは、method_missing を使っているんだけど、これを define_method で置き替えるのは、さすがに厳しいなあ。あと、確かにpublic_methods や respond_to? は期待通りの動作をしないけれど、Win32OLEオブジェクトには、ole_respond_to? とか、ole_methods とかあるので、そっちを使う方向で。

| | コメント (0) | トラックバック (1)

2015年4月29日 (水)

[本] はじめよう! 要件定義(羽生章洋)

はじめよう! 要件定義 ~ビギナーからベテランまで

あまりにも読みやすい本なので、さらりと読んでしまった。 その分、右から左に流してしまったように思うので、あと2、3回読み返した方がいいような気がする。

この本では、要件定義は後半だけで、それまでのところは準備編となっている。 だから、システムを提供する側は後半だけ参加すればいいかというと、それでは駄目で 準備の段階から絡んでいないと駄目だろうなと思った。

要件定義の仕上げの章は良かった。 要件定義の検証という考え方が新鮮だったし、方法も実践的でわかりやすかった。

小難しい要件定義の本よりも、この本を片手に要件定義を進めた方がいい気がする。

というか、自分が、この本が役に立つ状況にいない無職の身なので、先にそっちをどうにかしないといけないのだった。

| | コメント (0) | トラックバック (0)

2015年4月26日 (日)

[日記] 第6回翻訳ミステリー大賞

第6回翻訳ミステリー大賞決定。

『容疑者』は読んでいないので妥当かどうかわからないけど、他の4作品の投票結果は、順当だと思った。

| | コメント (0) | トラックバック (1)

2015年4月25日 (土)

[JavaScript] React.js

ちょっとだけ触れてみた。

いろいろGoogleで情報を漁ってみたが、一番わかりやすい入門中の入門は 入門 React.js その3 Hello world!してみよう だった。

あと、まだ最初の方をちょびっと読んだだけなので、何とも言えないが Learning React.js がわかりやすそう(英語)。

ただし、react-0.13.2 の場合は、説明の例にある

React.renderComponent(
  ...
)

は、

React.render(
  ...
)

と読み替える必要がある(多分)。

| | コメント (0) | トラックバック (0)

2015年4月21日 (火)

[日記] 電子レンジの買い替え

電子レンジが壊れたので、買い替えた。 10年以上使っていたので、まあ、寿命なんだろうな。 新しいのは、前のより音が小さい。 古い方は廃品回収に。 次、壊れるとしたら、冷蔵庫か。

| | コメント (0) | トラックバック (1)

2015年4月18日 (土)

:[本] 『ビブリア古書堂の事件手帖 (6) ~栞子さんと巡るさだめ~』(三上延)

ビブリア古書堂の事件手帖 (6) ~栞子さんと巡るさだめ~ (メディアワークス文庫)

『栞子さんがすがるような涙目で俺を見上げた。だいぶ追い詰められている。あと可愛い。』

図書館の次は古本屋である。別に意図してそうした訳ではなくて、偶然なんだけど。こちらのシリーズは10年も待つことなく6作目になる。

今回は太宰治。栞子さんを階段から突き落としたあの田中が再登場。太宰治の稀覯本を探すミステリ。脅迫紛いの手紙が登場したり、絶対不可能だと思われているような状況から、稀覯本の盗難事件が登場したり、ミステリとしての道具立てもしっかりしている。

殺人事件が起こらないから、一見して、古本にまつわる日常の謎ミステリのように見えるが騙されてはいけない。

古書を巡るドロドロした人間関係が徐々に明らかになるし、古書に取りつかれてしまった人間の業みたいなものが相変わらず描かれているし、アスキー・メディアワークスの文庫とは思えない。栞子さんのあのキャラを取り去った後に残るのは、結構、ハードなミステリである。 更に、今回は、事件の裏で糸を引く人物がいたり、栞子さんの母親が暗躍したり、意外な人物同士に深い因縁があったり、ありそうだったりして、謀略小説顔負けのプロットだった。

シリーズもいよいよ大詰めに近づいているようで、次も見逃せない。

| | コメント (0) | トラックバック (0)

[本] 『花野に眠る』(森谷明子)

花野に眠る (秋葉図書館の四季)

連作短編風長編ミステリ。図書館を舞台にした日常の謎ミステリ。悲しくも優しいミステリだった。 前作『れんげ野原の真ん中で』から10年。前作を読んで、ぜひ、続編を読みたいなと思ったことだけは覚えているのだが、内容も登場人物もすっかり忘れていた。10年も待たされるとは思わなかった。

連作短編形式で、全体として1つの長編ミステリになっている構成。

図書館を舞台にしているので、短編の中には、本に絡んだ謎解きもある。必ずしもフェアプレイの謎解きとは言えないかも知れないが、司書ならではの豊富な知識を活かして、図書館を訪れる人たちの疑問に応えていくところは読んでいて楽しい。わずかに記憶に残っている昔読んだ本の内容からタイトルを導き出し、「この本ではないですか」と差し出して、どうやって本を特定できたのか種明かしをしてくれるところがミステリっぽい。

それだけでは無くて、山中に埋められた白骨が見つかったり不穏な空気が漂い、白骨に隠された悲しい謎が解き明かされるなど、本格ミステリしている。

作品中に登場する本や作者を知らないことが多いのだが、今回は、違った。学生時代に読んだエッセイや友人と行った絵画展のことなど懐しく思ってしまった。絵本を図書館に借りに行ってみようかな。

どうでもいいことだけど、なぜか、能勢さんが「オレ」というのだけは馴染めないんだよなあ。

| | コメント (0) | トラックバック (0)

2015年4月14日 (火)

[Ruby] rbenv の install コマンド

複数バージョンを指定することはできないのか。

$ rbenv install 2.1.6 2.0.0-p645
Usage: rbenv install [-f] [-kvp] <version>
       rbenv install [-f] [-kvp] <definition-file>
         ... (snip)
$

| | コメント (0) | トラックバック (0)

2015年4月13日 (月)

[Java][Ruby] 配列の偶数番目の要素を抜き出す

配列の偶数番目の要素だけを抜き出すシンプルな書き方ってどんな書き方なんだろうか?

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Even {
    public static void main(String ... args) {
        List<String> ary = new ArrayList<String>(Arrays.asList("a","b","c","d","e"));
        IntStream.range(0, ary.size())
            .filter(e -> e % 2 == 1)
            .mapToObj(e -> ary.get(e))
            .forEach(e -> System.out.println(e));
    }
}

Ruby で書くと

ary = ["a", "b", "c", "d", "e"]
ary = 1.step(ary.size - 1, 2).map{|e|
  ary[e]
}
puts ary

Ruby だと、with_index を使う方法がネットで見つかった。

ary = ["a", "b", "c", "d", "e"]
ary = ary.select.with_index{|e, i|
  i % 2 == 1
}
puts ary

| | コメント (0) | トラックバック (0)

2015年4月12日 (日)

[プログラミング] CodeIQ や paiza の問題とRuby

Ruby には、Array#map, Array#uniq, Array#group_by, Array#sort, Array#reduce, Array#permutation などなど 便利なメソッドがいろいろあるので、CodeIQ や paiza の問題を解きやすい。 だが、組み合わせが何通りあるかをカウントするような問題は、メソッドだけを素直に(何も考えずに)組み合わせても駄目なときがある。 ちゃんと考えてプログラミングしないと時間内に処理が終わらない。 まあ、それでもRubyで書く方が楽だと思うのだけど。

| | コメント (0) | トラックバック (0)

«[Java] stream のソート