はじめに
書くテーマが決まっていないブログは、内容に一切縛りがない分、カテゴリが散らかりまくる欠点がある。これは月イチメンテする必要がどうしてもある。このメンテのコストをできるだけ抑えつつ、なるべく客観的な評価指標を探っていきたいところです。
なお、これまでの全記事のタイトルとカテゴリ取得に関しては以下の記事で書いた。
全記事とカテゴリを完全なcsv形式で取得
前の記事では、中途半端にtitle と categoryを配列のまま出していたりして、なんやかんやNumbersで見るのに不便だったので完全なcsvとして出力するように修正した。
# coding: UTF-8 require 'atomutil' USERNAME = 'take_she12' PASSWORD = 'APIキー' POST_URI = "https://blog.hatena.ne.jp/take_she12/take-she12.hatenablog.com/atom/entry" auth = Atompub::Auth::Wsse.new :username => USERNAME, :password => PASSWORD client = Atompub::Client.new :auth => auth feed = client.get_feed(POST_URI); out_fp = File.open("output.txt", "w") while feed != nil do entry = feed.entries entry.each{|content| p content.title #debug cate = [] content.categories.each do |category| p category.term #debug cate << category.term end out_fp.printf("%s, %s\n", content.title, cate.join(",")) } if feed.next_link == nil then break else feed = client.get_feed(feed.next_link); end end out_fp.close
修正したところはjoinメソッドを使ったところぐらいです。配列を引数で指定したもの区切りのstringに変換するんやね、本当rubyはやりたいことだいたいできるな。
出力結果はちゃんとこんな感じになります。
[take@tk2-207-13166 ~]$ cat script/output.txt | head 日報をgitlabで管理すると結構いいよ, ソフトウェア開発,ソフトウェア開発-備忘録 2月のアクセス解析と人気記事まとめ, ブログ node.jsでクローリングしてことわざの使用例をつぶやくbotを作った, ソフトウェア開発,ソフトウェア開発-node.js ブログの記事ネタリストをtoodledoで管理する, ブログ atomutilで全エントリーのタイトルとカテゴリを取得する, ソフトウェア開発,ソフトウェア開発-Ruby,ブログ 技術者としてお金を稼ぐのか、ビジネスマンとしてお金を稼ぐのか, ソフトウェア開発,ビジネス 自信なんて持つ必要ない, 考え方 英語でプログラミング言語を学ぶ「JavaScript: The Good Parts 」Object編, ソフトウェア開発,ソフトウェア開発-JavaScript 小銭貯金ソリューション、ついに計測完了した話, 生活 「一行バカ売れ」から考えるブログや書籍のタイトル付け, 本,ブログ
カテゴリの見直し
今回、毎日見ているニュースサイトMenthasさんを参考にしました。
これまではソフトウェア開発っていう大分類の下にrubyだのvagrantだのありましたが、Infrustructureとprogrammingっていう大分類にわけてしまおうと思いました。そんでもってフレームワークはもう個別に扱わないことにしました。rubyも、railsも、rubyで。node.jsはjsです。
おわりに
月イチカテゴリメンテはこれからもやっていく予定です。
以前、その他は百害会って一理なしと言いましたが、件数が一定数に満たないものはカテゴリ化する価値があまりないので、そういうものはその他にいれるべきかなと思ったので前言撤回したい。(笑)