2013年6月7日金曜日

ガラパゴス化のすすめ

私は以下のような背景で日本の鎖国を推薦しているのですが、誰からもまったく賛成してもらえません。なお最初の段落の外国からの投資は2011年の外国からの対日投資がマイナスだった、すなわち投資が引き上げられていた、という下記記事が背景にあります。

「米国化」が進む日本、いずれ「三つ子の赤字」に陥る

外国から見て日本が投資先として魅力的にするためにどうすればいいか検討するためには、まず外国人や企業の背景や置かれている立場を理解して外国からの目線で考えないといけないけど、9割くらいの日本人はそういう外国人の立場に立って考えてみることが嫌いか、そもそも日本人以外の人間が存在することを認識していないと思います。大阪の橋下市長の発言は日本国内向けとしてはまあいいかも知れないけど、外国からどういう反応を受けるかまったく想定していないように見える。橋下さんの脳内では、日本国外には人間がそもそも存在していないとしか思えない。だけどそれは橋下さんだけが特別ではなくて、日本の外側に日本とはまったく違う背景・前提・世界観・常識で生きている人間がいるってことを実感としてまったく分かっていない日本人が9割くらいを占めていて、そういう9割の世論に沿って日本の進路が決まってくるので、外国から見てどう見えるかという観点とはまったく無関係に日本は今後も進んでいくと予想します。たまたままぐれで日本が外国から見て投資先として魅力的になる可能性はあるけど。

鎖国しちゃうと、オイルが無くて農薬と化学肥料も十分に使えるかどうか謎なのでから1日15時間くらい人力だけで畑を耕したり刈り入れしたり雑草を取ったりウンコから作った堆肥を撒きます。人力がとにかくいるので子供を生んだお母さんも子供をおんぶ紐で背負って産後1週間くらいから畑に出ます。農閑期以外は土日休日まったく無しです。それだけやって天候不作だと餓死者が出る世界を想定しています。気骨の無い人は当然死ぬし、一生のほぼ全てが労働だけで終わるので萌え萌えキュンも無いです。でもそうやれば外国人とかかわり合いにならなくて済むから生き残った日本人はハッピーだと妄想しているんだけど、まったく誰も賛成してくれないんですよねー。藤原正彦先生も、江戸時代の日本人はこの段落のような生活で幸福だったと書いています。

鎖国した場合にはオイルが無いからトラクターとかは使用不能だと思いますが、農薬と化学肥料が使えるのかどうかを今のところ判定できていません。 また、機械と農薬と化学肥料を使えない江戸時代は3000万人くらいの人口しか養えなかったので、そこからはみ出した人は餓死することを想定しています。

2013年6月5日水曜日

Google+ APIが現在バグっています

Google+ APIで特定の記事についたコメント一覧を取得する

が、何件コメントが有っても2件しかコメントを返さなくなっています。上記の関数を使ってWEBページにG+コメントを表示するデモページでもコメントが17件本来あるのに2件しか表示されなくなったいます。このG+記事にはコメントが17件付いていますけど、HTTP APIを用いてコメントを取得しようとすると下記のように2件しか取得できません。

この件はGoogle+ Developer Forumでも話題になっています。

$ wget -t 1 -S -O - https://www.googleapis.com/plus/v1/activities/z125jb5yhq3dyfwe5224exwiqruvtda0i/comments?key=AIzaSyA5ti-m7T8gFzR5uuMR6EJB7KygMaDr0hk
--2013-06-05 20:08:29--  https://www.googleapis.com/plus/v1/activities/z125jb5yhq3dyfwe5224exwiqruvtda0i/comments?key=AIzaSyA5ti-m7T8gFzR5uuMR6EJB7KygMaDr0hk
www.googleapis.com (www.googleapis.com) をDNSに問いあわせています... 74.125.31.95
www.googleapis.com (www.googleapis.com)|74.125.31.95|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています...
  HTTP/1.1 200 OK
  Expires: Wed, 05 Jun 2013 11:08:30 GMT
  Date: Wed, 05 Jun 2013 11:08:30 GMT
  Cache-Control: private, max-age=0, must-revalidate, no-transform
  ETag: "egWOTnJQshDUW7mcQ5TTH5LK5kQ/scHVPJwUGGN-8wgFh93QhFozvKc"
  Content-Type: application/json; charset=UTF-8
  X-Content-Type-Options: nosniff
  X-Frame-Options: SAMEORIGIN
  X-XSS-Protection: 1; mode=block
  Server: GSE
  Transfer-Encoding: chunked
長さ: 特定できません [application/json]
`STDOUT' に保存中

    [<=>                                    ] 0           --.-K/s              {
 "kind": "plus#commentFeed",
 "etag": "\"egWOTnJQshDUW7mcQ5TTH5LK5kQ/scHVPJwUGGN-8wgFh93QhFozvKc\"",
 "title": "Google+ List of Comments for an Activity",
 "items": [
  {
   "kind": "plus#comment",
   "etag": "\"egWOTnJQshDUW7mcQ5TTH5LK5kQ/mcBpYjFXrhKAFa8MJXGdw2j6DIo\"",
   "verb": "post",
   "id": "z125jb5yhq3dyfwe5224exwiqruvtda0i.1360594391049454",
   "published": "2013-02-11T14:53:11.049Z",
   "updated": "2013-02-11T14:53:11.049Z",
   "actor": {
    "id": "113706774556650311061",
    "displayName": "Sancho Virág Attila",
    "url": "https://plus.google.com/113706774556650311061",
    "image": {
     "url": "https://lh3.googleusercontent.com/-9AVmWRcEmwA/AAAAAAAAAAI/AAAAAAABgrM/zA_wxyVts7s/photo.jpg?sz=50"
    }
   },
   "object": {
    "objectType": "comment",
    "content": "Sorry for a lot of comments, but I have a new problem. :)\u003cbr /\u003eAll page shows all posts which created for one only. What could be the problem?\u003cbr /\u003e\u003cbr /\u003eExample I shared this the test shared post which included comments: \u003ca href=\"http://goo.gl/mltze\" class=\"ot-anchor\" rel=\"nofollow\"\u003ehttp://goo.gl/mltze\u003c/a\u003e\u003cbr /\u003eBut the same G+ comments included on this page also: \u003ca href=\"http://goo.gl/BTNxV\" class=\"ot-anchor\" rel=\"nofollow\"\u003ehttp://goo.gl/BTNxV\u003c/a\u003e\u003cbr /\u003e\u003cbr /\u003e(tnx \u003cspan class=\"proflinkWrapper\"\u003e\u003cspan class=\"proflinkPrefix\"\u003e+\u003c/span\u003e\u003ca href=\"https://plus.google.com/113265892681003873244\" class=\"proflink\" oid=\"113265892681003873244\"\u003eMartin Matysiak\u003c/a\u003e\u003c/span\u003e)"
   },
   "selfLink": "https://www.googleapis.com/plus/v1/comments/z125jb5yhq3dyfwe5224exwiqruvtda0i#1360594391049454",
   "inReplyTo": [
    {
     "id": "z125jb5yhq3dyfwe5224exwiqruvtda0i",
     "url": "https://plus.google.com/102817283354809142195/posts/Ch1e36yt4aD"
    }
   ],
   "plusoners": {
    "totalItems": 0
   }
  },
  {
   "kind": "plus#comment",
   "etag": "\"egWOTnJQshDUW7mcQ5TTH5LK5kQ/8waRZoGwv8DlAa-CZPGS0-mydoQ\"",
   "verb": "post",
   "id": "z125jb5yhq3dyfwe5224exwiqruvtda0i.1360697414606157",
   "published": "2013-02-12T19:30:14.606Z",
   "updated": "2013-02-12T19:30:14.606Z",
   "actor": {
    "id": "102817283354809142195",
    "displayName": "Jenny Murphy",
    "url": "https://plus.google.com/102817283354809142195",
    "image": {
     "url": "https://lh4.googleusercontent.com/-yth5HLY4Qi4/AAAAAAAAAAI/AAAAAAAAPVs/fAq4PVOVBdc/photo.jpg?sz=50"
    }
   },
   "object": {
    "objectType": "comment",
    "content": "\u003cspan class=\"proflinkWrapper\"\u003e\u003cspan class=\"proflinkPrefix\"\u003e+\u003c/span\u003e\u003ca href=\"https://plus.google.com/113706774556650311061\" class=\"proflink\" oid=\"113706774556650311061\"\u003eSancho Virág Attila\u003c/a\u003e\u003c/span\u003e They both contain the same ID on lines 68 and 131 respectively:\u003cbr /\u003e\u003cbr /\u003e  &lt;div class=&quot;g-comments-for z12ewluort3ygpsqo04cgrmi1y2rvrqgwlk0k&quot;&gt;&lt;/div&gt;\u003cbr /\u003e\u003cbr /\u003ez12ewluort3ygpsqo04cgrmi1y2rvrqgwlk0k is the value that controls where the JavaScript will pull the comment from."
   },
   "selfLink": "https://www.googleapis.com/plus/v1/comments/z125jb5yhq3dyfwe5224exwiqruvtda0i#1360697414606157",
   "inReplyTo": [
    {
     "id": "z125jb5yhq3dyfwe5224exwiqruvtda0i",
     "url": "https://plus.google.com/102817283354809142195/posts/Ch1e36yt4aD"
    }
   ],
   "plusoners": {
    "totalItems": 0
   }
  }
 ]
}
    [ <=>                                   ] 3,532       --.-K/s 時間 0.001s

2013-06-05 20:08:30 (5.12 MB/s) - stdout へ出力しました [3532]

2013年6月1日土曜日

Google+の記事についたコメントをブログやWEBページに貼り付ける

ブログやWEBページにGoogle+から付けられたコメントを表示する方法には
がありますけど、上記のやり方は特定のURL(WEBページ)と関連したGoogle+コメントしか表示できません。従って、例えばNoz Oさんのブログのように、最初にGoogle+に投稿した記事をその後にブログ記事にした場合、元のGoogle+記事がブログと関係づけられていないから、Google+コメントを上記のやり方ではブログに表示できません。そういう場合に、Google+の投稿についたコメントをG+以外のWEBページやブログに貼り付けるやり方を説明します。
  1. APIキーというものを以下の手順で取得します
    1. https://code.google.com/apis/console/をクリックして下さい。
    2. 左側の「Service」をクリックしてから「Google+」をクリックして下さい。始めての場合は「OFF」を「ON」にする必要があります。
    3. 左側の「API Access」をクリックするとAPI keyが表示されます。
  2. 対象となるGoogle+記事の記事IDをhttp://wheresgus.com/urltoidに記事のURLを入力して取得します。リンク切れの場合はhttp://gusclass.com/blog/2012/12/18/getting-an-activity-id-from-a-google-post-url/から辿って下さい。その方法がうまく動かない場合Google+記事のHTMLソースを表示して「data-update-id」をサーチすると記事IDがわかります(2013年6月1日現在)。例としてhttps://plus.google.com/102903912989809953917/posts/dxwNTTYaBmqの記事IDはz13odvgjpw2uvvzyw04cdfcjlxnyvtzpqy40kであることがわかります。
上記の準備が終わったら、下記のJavascriptをHTMLを直接編集してコメントを設置したい場所に貼り付けてください。APIキーと記事IDを上記で得たものに置き換えて下さい。

<div class="g-comments-for 記事ID"></div>
<script type="text/javascript">
// This file was originally made by Jennifer Murphy, and
// downloaded from http://little418.com/2011/12/google-comments-on-your-static-html-blog.html

var commentr = commentr || {};
var apiKey = "APIキーをhttps://code.google.com/apis/console/をから入手して下さい";

function commentrLoad() {
  gapi.client.load('plus', 'v1', commentr.go);
  gapi.client.setApiKey(apiKey);
}

// search for g-comments-for classes
commentr.go = function() {
  //  Find the comment elements to process
  var fetchElements = document.getElementsByClassName('g-comments-for');
  for (var i=0; i < fetchElements.length; i++) {
    var activityId = fetchElements[i].classList[1];
    commentr.fetchComments(activityId);
  }
}

commentr.fetchComments = function(activityId) {
  var request = gapi.client.plus.comments.list({
    'activityId': activityId,
    'maxResults': '500'
  });
  request.execute(commentr.parseComments);
}

commentr.parseComments = function(responseJson) {
  var activity = responseJson.items[0].inReplyTo[0];
  var comments = responseJson.items;

  //find element to insert into
  var insertionElements =
      document.getElementsByClassName('g-comments-for ' + activity.id);
  var insertionElement = insertionElements[0];

  var newContents = "";
  for (i = 0; i < comments.length; i++) {
    var actor = comments[i].actor;

    var commentBody = comments[i].object.content;

    //do the insertion
    newContents += "<dt><a href='" + actor.url + "'><img src='" +
        actor.image.url + "'> " + actor.displayName +
        "</a>:</dt><dd>" + commentBody + "</dd>";

  }
  insertionElement.innerHTML = "<dl>" + newContents +
      "</dl> <p class='g-commentlink'>コメントを追加するには <a href='" +
      activity.url + "'>ここ (Google+に移動)</a> をクリックして下さい.</p>";
}
</script>
<script type="text/javascript" src="https://apis.google.com/js/client.js?onload=commentrLoad">
</script>

以下実施例です。プロフィール画像の後に改行が入ることが気に入らない場合、プロフィール画像はHTMLのdtで実現されているので関連するスタイルをCSSで調整して下さい。


以下はグーグルブロガーが提供するこのブログ記事へのコメント欄です