はてなキーワード連想語API

関連キーワードをいくつか出して派生させていくUIをつくりたかったので、APIがあるか調べてみた。

Google Suggest APIは廃止されているらしかったので、
はてなキーワード連想語APIを使ってみた。

はてなキーワード連想語API - Hatena Developer Center

説明に「2006年 2月15日 リリース」とあるので、12年前のAPIのようだ。
XML-RPCAPIにアクセスするらしい。
chromeアプリのPostmanではXML-RPCでアクセス結果がXML errorになってしまった。

公式の案内を参考にrubyで書いてみたらうまくいった。

#!/usr/bin/env ruby -Ku

require "xmlrpc/client"

server = XMLRPC::Client.new("d.hatena.ne.jp", "/xmlrpc")

begin
  result = server.call("hatena.getSimilarWord", {
    # %w means array in ruby
    "wordlist" => %w[ Hatena Ruby ]
  })
  puts result['wordlist'].map {|v| v['word'] }.join(', ')
rescue XMLRPC::FaultException => e
  puts "Error:"
  puts e.faultCode
  puts e.faultString
end

『荒木飛呂彦の漫画術』に登場した作品

こちらの記事で紹介されていた『荒木飛呂彦の漫画術』という本を読みました。

daichi.blog

作品同士の相関関係を可視化するようなページはまだ作れていないので、

ひとまずこの中に登場した作品(本、漫画、映画)のタイトルをリストアップしました。

定本 映画術 ヒッチコック・トリュフォー

定本 映画術 ヒッチコック・トリュフォー

キャプテン翼 (第1巻) (ジャンプ・コミックス)

キャプテン翼 (第1巻) (ジャンプ・コミックス)

北斗の拳 (1) (ジャンプ・コミックス)

北斗の拳 (1) (ジャンプ・コミックス)

手天童子 1

手天童子 1

紙の月 (ハルキ文庫)

紙の月 (ハルキ文庫)

魁!!男塾 第1巻

魁!!男塾 第1巻

サザエさん (1)

サザエさん (1)

武装ポーカー:

AKIRA(1) (KCデラックス ヤングマガジン)

AKIRA(1) (KCデラックス ヤングマガジン)

COBRA 1 (MFコミックス)

COBRA 1 (MFコミックス)

蟲師(1) (アフタヌーンコミックス)

蟲師(1) (アフタヌーンコミックス)

孤独のグルメ

孤独のグルメ

テルマエ・ロマエ I (BEAM COMIX)

テルマエ・ロマエ I (BEAM COMIX)

『必殺』シリーズ(必殺仕事人)

ターミネーター2:

キャリー:

水戸黄門

旧約聖書カインとアベル

旧約聖書 創世記 (岩波文庫)

旧約聖書 創世記 (岩波文庫)

エデンの東 新訳版 (1)  (ハヤカワepi文庫)

エデンの東 新訳版 (1) (ハヤカワepi文庫)

あまちゃん 完全版 Blu-rayBOX1

あまちゃん 完全版 Blu-rayBOX1

殺し屋 The Killers - ヘミングウェイ

われらの時代・男だけの世界 (新潮文庫―ヘミングウェイ全短編)

われらの時代・男だけの世界 (新潮文庫―ヘミングウェイ全短編)

七人の侍

七人の侍

ドラえもん (1) (てんとう虫コミックス)

ドラえもん (1) (てんとう虫コミックス)

「アポロとダフネ」ベルリーニ

アポロとダフネ 90 大理石 彫刻 石像

アポロとダフネ 90 大理石 彫刻 石像

童夢 (アクションコミックス)

童夢 (アクションコミックス)

モナ・リザ

「砂嵐」荒木飛呂彦

綿の国星 (第1巻) (白泉社文庫)

綿の国星 (第1巻) (白泉社文庫)

ルーツ コレクターズBOX [DVD]

ルーツ コレクターズBOX [DVD]

八十日間世界一周 (創元SF文庫)

八十日間世界一周 (創元SF文庫)

八つ墓村

八つ墓村

本の参考文献で本どうしの関連図をつくる

小説などの本を読んでいると最後に参考文献の一覧が列挙されている。

これはつまり、ひとつの本が複数の本からできあがっているということ。

この参照&被参照の関係をTwitter Gragh

のような相関図に表現できないだろうかと考えた。

国会図書館のサイトやGoogle Booksを見てみたが、

しかしながら、APIとして公開されていないようなので、断念した。

本ではないものの関連図ならつくれるだろうか。

Wikipediaの記事などはどうだろう。

『農民芸術概論綱要』より

(前略)

……いかに着手しいかに進んで行ったらいいか……

世界に対する大なる希願をまづ起せ

強く正しく生活せよ 苦難を避けず直進せよ

感受の後に模倣理想化冷く鋭き解析と熱あり力ある綜合と

諸作無意識中に潜入するほど美的の深と創造力はかはる

機により興会し胚胎すれば製作心象中にあり

練意了って表現し 定案成れば完成せらる

無意識即から溢れるものでなければ多く無力か詐偽である

髪を長くしコーヒーを呑み空虚に待てる顔つきを見よ

なべての悩みをたきぎと燃やし なべての心を心とせよ

風とゆききし 雲からエネルギーをとれ

(後略)

相対評価と絶対評価

誰かを批判したときに、実はそれが自分にも当てはまっていると気づくことある。

働きアリの法則は有名だけど、たまたまそのグループ内でその特性の度合いが顕著な人がいたから、自分が批判の対象にされずに助かったということなのか。

相対的に判断すればそうだけど、絶対的にはけっこう多くの人に該当している。

人のことを笑ったり批判している場合ではない。

こうやって考えると絶対評価の方が良さそうに思える。

counter_casheをリセットする

counter_casheを使ってPostに紐付くCommentの数をDBカラムに保存するように修正した。

PostにCommentが追加/削除されたらCommentの数が変更される。

class Comment < ActiveRecord::Base
  belongs_to :post, :counter_cache => :comments_count
end

上記の変更を反映させるために、
すべてのPostについてCommentの数を再計算してカラムに保存する以下のスクリプトが必要になった。

Post.find_each do |post|
  Post.reset_counters post.id, :comments
end

参考:

stackoverflow.com

親父の宝くじ

親父が買った宝くじを掃除の最中に母が見つけた。

母は趣味の一環として微笑ましげだった。

 

もうすぐ還暦になる親父と飲んだ。

親父の会社は機械の部品を作っている製造業であるが、80代の会長が保守的で、赤字が見込まれ先がない製造業を廃業して隠居したいらしい。

ただ、従業員も少なからずいるため、経営陣のひとりである親父は、会長を説得して廃業を回避させたいが、一介のサラリーマンである親父には会長から会社を買い上げるだけの金はないため、会長に従わざるをえない。

 

飲みの中で、親父としてはその宝くじが当たれば、会長から独力して会社を立て直そうというつもりだったことを話した。

 

ただの宝くじに、親父の切ない希望がこめられていたことを知り、少し悲しくなった。