2016年12月31日土曜日

2017年を論じた本まとめ

2016年末ということで、2017年を論じてる本を何冊か読んでみた。

はじめの3つは経済・政治に着眼点をおいて書いた本で、最後のは技術トレンドだけに絞った本。

ちょっと毛色が違う最後の本だけ除いて、はじめの3つだけ横断的にコメントしてみると、IT技術としてはAI、IOT、VR・AR・MRが来て、世界情勢的には選挙を控えたヨーロッパでポピュリズムの波が来るぞ、という聞き飽きた話をカバーしながらそれぞれちょっとずつ独自色を出している様子。



2017年 日本はこうなる


話題は多岐に渡っているが一つ一つの掘り下げが甘い。
表面的な説明と根拠のない展望が記載されているだけという印象が拭えない。
例えば、ロボット開発の項目では、政府が「ロボット新戦略」を打ち出していること、それを受けて自治体が動き出していること、そして公と民が連携する必要があることしか記述されていなく、肩透かしを食らった印象がある。

VRの項目では、最後に「本稿では紹介しきれないほど、VRは進化を遂げている」と述べられているので、そもそもあまり深く伝えようとする意図が本書にはないのかもしれない。

日頃から新聞やネットニュースに目を通している方であれば、あえて本書を読んで得るものはないだろう。

おすすめ度★☆


経済がわかる 論点50 2017



三菱UFJリサーチ&コンサルティングの「2017年 日本はこうなる」はトレンドをカバーすることを意識しすぎて表面的になっていたのに対し、本書は「論点」に着眼したために、昨今の変化を見据えて本質的に考えなければいけないこと、これから情報をフォローしていかなければいけないことを得るのに最適であった。それぞれ、きちんと資料と出処が引用されていて、論理に信頼感がある。

2017年末にも、本書の翌年度版をぜひ読みたい

おすすめ度


日本の論点2017~18 

大前研一が論点と考えることについて、更に彼独自の観点から見解が述べられていて非常に読み応えがあった。
類書と類似のテーマは多いが、イタリアから日本が学べることや、台湾と中国の関係、ミャンマーの政治事情などそもそも情報源としても他ではあまり聞いたことがない話が多く、彼の情報網の厚さに唸らされる。

類書では「経済がわかる 論点50 2017」などもあるが、こちらでは執筆者一覧としてズラリ数十人の名前が記載されているが、それに匹敵する書籍を一人で書き上げられる実力は流石といったところだ。

日本の論点とあるが、後半ではドイツ・イタリア・中国・台湾・ミャンマーなど国外の論点についても論じられている。
実質「世界の論点」について語られているので、タイトルは無駄に小さくしてしまった印象。


2016年12月26日月曜日

Githubでフォーク元の修正を取り込む手順メモ

1. フォーク元を追加
git remote add upstream git://github.com/<username>/<reponame>.git
2. 修正をフォーク先に取り込む
git fetch upstream
git merge upstream/master

3. 修正をfortした自分のレポジトリに反映
git push

これ、githubのweb上でできてほしいんだけどな。
なんでremoteとかも自動で設定されてないのか(そういうもんなんだろうか)



参考文献
http://rcmdnk.github.io/blog/2014/06/09/compouter-git/

2016年7月20日水曜日

RestEasyを理解するためのサンプルコード集

RestEasyはJBossにバンドルされているJAX-RS実装。
日本語・英語問わず、あまり親切な情報がなかったのでサンプルとして纏めておく。

JBOSS系は公式ドキュメントがわかりづらい上に、Updateがきちんとされてなかったり、いつもながらとっつきにくい。Glassfish実装のJerseyの方がドキュメントが親切だし、mavenのarchetypeもある。選べるのならばJerseyの方がいいだろう。


RestEasySample1

まず単純なHelloworld。これが動けばとりあえず設定系は成功しているとみなして良いはず。
個人的にはweb.xmlに何も書かなくていいというのに嵌った。Jerseyでは確かここに定義を書かなければ行けなかったと記憶している。

RestEasySample2

GETとPOSTを使ったサンプルを少し。

RestEasySample3

JAXBと組み合わせた時のサンプルを少し。
メソッドの戻り値にJAXBのAnnotationをつけたクラスを指定すれば、勝手にxmlに変換してhttpの戻り値としてくれるのはちょっと感動した。

RestEasySample4

Basic認証を使ったサンプルを少し。
web.xmlでBasic認証を設定すると、JAX-RSがその先でEJBを呼び出したとしても、認証が通った状態になっている。JBOSS全体で認証をパスした扱いになっているのかも(未確認)



2016年6月24日金曜日

Resteasyメモ

org.jboss.resteasy.pl
ugins.providers.jaxb.JAXBUnmarshalException: Could not find JAXBContextFinder for media type: application/x-www-form-urlencoded;charset="UTF-8"

content-typeが受け付けてもらえてない様子。
jqueryでcontent-typeを下記のように設定する。

$.ajax({
  type: 'POST',
  url: 'http://localhost/post',
  data: '<hoge>aa</hoge>',
  dataType: "xml",
  contentType : "application/xml",
  success: function(value){
    alert("ok");
  },
  error:function(value){
    alert("fail");
  }

});


2016年3月29日火曜日

Resteasy memo


動くサンプルコード

https://github.com/resteasy/Resteasy/tree/master/jaxrs/examples/oreilly-workbook-as7

ネット上に転がってるサンプルコードは、バージョンが合わないせいか、動かないものが多かった。
JBossの公式サイトをみて、コードを書いてみてもなんだかイマイチよくわからなくてdeployでエラーが出てばかりだった。とりあえず上のgithubコードを使うと動くものが手に入る。

なお、とりあえずmvn installしてみるといろいろとエラーが出る。

[ERROR] Failed to execute goal org.jboss.as.plugins:jboss-as-maven-plugin:7.1.1.Final:deploy (jboss-deploy) on project workbook-ex03_1-as7: Error executing FORCE_DEPLOY: Could not execute operation '{
[ERROR] "operation" => "read-children-names",
[ERROR] "child-type" => "deployment"
[ERROR] }': java.net.ConnectException: JBAS012144: Could not connect to remote://localhost:9999. The connection timed out

JBossがビルド環境で動いてないのが原因かと推測するが、とりあえずpackageフェーズは通過しているのでwarはできている。動くwarが欲しいだけであれば無視して良い。
またはmvn installではなくmvn packageとすれば、エラーは出なくなる。(もちろん本質的には何ら解決してないが)

2016年2月18日木曜日

VMWare PlayerでIPv6通信

VMWare Playerで動かした仮想マシン上でIPv6通信を行った時のメモ。

VMWareのバージョン

7.1.0 build-2496824

仮想マシン1

Windows 7

仮想マシン2

Red Hat Enterprise Linux Server release 6.0 (Santiago)

やったこと

  • 仮想マシン1,2のping6
  • ホスト(Windows7)と仮想マシン1のping6
  • ホスト(Windows7)と仮想マシン2のping6

結果

  • 仮想マシン1 => 2 へのping6 成功
  • 仮想マシン2 => 1 へのping6 成功
  • ホスト=>仮想マシン1へのping6 成功
  • 仮想マシン1=>ホストへのping6 失敗
  • ホスト=>仮想マシン2へのping6 成功
  • 仮想マシン2=>ホストへのping6 失敗

何故かよくわからないが、仮想マシン=>ホストへのping6はUnreachableだった。
Wiresharkで見ていたところ、仮想マシンからNeighbor solicitationsが発行された後に
ホストから応答があるはずのNeighbor advertisementsが出ていなかった。
Vmware Playerのせいなのか、設定が正しくないのかは不明。

なお、IPv4でのpingの場合は、上記の全経路で通信に成功した。

重要そうな設定

ネットワークアダプタの設定をHost-onlyにした時のみ、ping6が成功した。
BridgedやNATではダメだった。

仮想マシン上のFirewallは切っておいた。ホストはOFFにする権限がなかったので切っていない。
仮想マシン => ホストのping6が通らないのはこれが原因かもしれない。ただし仮想マシン間のping6は双方向で通るので、イマイチよくわからない。



2016年2月3日水曜日

Chainerを使ったMNIST Handwitten Digit Classifier

Chainerを使って手書き数字の認識器を作ってみた。

MNIST Handwritten digit classifier


Herokuで動かしているが、学習自体は別の環境で行った。
ChanierはモデルのSerialize機能があるので、それをHerokuにデプロイして利用している。

マシンリソースがあまりないので、エポック数とか削ってしまったが、まあまあきちんと認識してくれてるような気がする。

ソースコードはGithubを参照

html部分はこちらのソースコードを流用させていただきました。