2015年4月26日 (日)

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

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

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

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

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)

2015年4月11日 (土)

[Java] stream のソート

List をソートするときに stream() を使うと sorted()。 使わない場合は、sort()。 紛らわしい。

import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class Stream {
    public static void main(String ... args) {
        List<Integer> ary = new ArrayList<Integer>(Arrays.<Integer>asList(3,1,4,2));
        /*
        ary.sort((x,y) -> y - x);
        for (int i : ary) {
            System.out.println(i);
        }
        */
        ary.stream()
           .sorted((x, y) -> y - x) // not sort()
           .forEach((x) -> System.out.println(x));
    }
}

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

2015年4月10日 (金)

[Java] ドット(.)区切りの文字列の分割

Javaでドット(.)区切りの文字列を分割しようとしてはまった。

public class Split {
    public static void main(String...args) {
        String[] ary;
        String s1 = "a.b.c";
        ary = s1.split(".");
        System.out.println(ary.length);
        for(String s : ary) {
            System.out.println(s);
        }
    }
}

これをコンパイルして実行するとこうなる。

$ java Split
0

Rubyだと

s1 = "a.b.c"
ary = s1.split(".")
puts ary.size
ary.each{|s|
 puts s
}

を実行するとこうなる。

$ ruby split.rb
3
a
b
c

Java の String.split の引数は文字列ではなく正規表現として解釈される。 ドット(.)は正規表現では任意の文字を指すのでドット(.)として扱うためにはエスケープしないといけない。

public class Split {
    public static void main(String...args) {
        String[] ary;
        String s1 = "a.b.c";
        ary = s1.split("\\.");
        System.out.println(ary.length);
        for(String s : ary) {
            System.out.println(s);
        }
    }
}

これを実行すれば、

$ java Split
3
a
b
c

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

«[Ruby] Date の差分