tag:blogger.com,1999:blog-11915178449416878602024-03-13T09:45:05.201+09:00A Software Engineer Blogkentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.comBlogger99125tag:blogger.com,1999:blog-1191517844941687860.post-49905259858103092012020-07-27T10:52:00.003+09:002020-07-27T10:52:47.601+09:00[読書感想文] Measure What Matters<br />
<a href="https://www.amazon.co.jp/John-Doerr/dp/0525538348/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=690HMUXZIW1O&dchild=1&keywords=measure+what+matters&qid=1595812275&s=books&sprefix=measure+%2Cstripbooks%2C263&sr=1-2">Measure What Matters</a><br />
<br />
日本語版はこっち<br />
<a href="https://www.amazon.co.jp/Measure-What-Matters-%E4%BC%9D%E8%AA%AC%E3%81%AE%E3%83%99%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC%E6%8A%95%E8%B3%87%E5%AE%B6%E3%81%8CGoogle%E3%81%AB%E6%95%99%E3%81%88%E3%81%9F%E6%88%90%E5%8A%9F%E6%89%8B%E6%B3%95-%E3%83%A1%E3%82%B8%E3%83%A3%E3%83%BC%E3%83%BB%E3%83%9B%E3%83%AF%E3%83%83%E3%83%88%E3%83%BB%E3%83%9E%E3%82%BF%E3%83%BC%E3%82%BA/dp/4532322405/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=690HMUXZIW1O&dchild=1&keywords=measure+what+matters&qid=1595812275&s=books&sprefix=measure+%2Cstripbooks%2C263&sr=1-1">Measure What Matters 伝説のベンチャー投資家がGoogleに教えた成功手法 OKR</a><br />
<br />
<h2>
Who should read this?</h2>
<div>
OKRを会社で導入した、あるいは導入しようとしているが、いまいちこれでいいのかわからなくてしっくりこない感覚を持っている人。</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Impression</h2>
<div>
OKRの使い方はとてもシンプルなものである。わくわくするような目標としてのObjectiveと、それをどうやったら実現できるのか見える化するための指標としてのKey Resultを作成するだけである。ただ、シンプルが故にどのようにでも応用できてしまうので、それを効果的に会社組織に適用するのはなかなかハードルが高い。MBOなどのそれまでの方式と根本的に何が違うのか、という感想は多くの人が抱いたことがあると思う。</div>
<div>
<br /></div>
<div>
「覚えるのは1分 極めるのは一生」はオセロのルールとしてのシンプルさと、ルールを使用したときの奥深さを表す表現として有名だが、OKRにも同様のことが言えるだろう。</div>
<div>
<br /></div>
<div>
本書の前半(Part 1)は、GoogleやIntelなどを始めとする企業がどのようにOKRを導入し、どのような効果を実感しているかが紹介されている事例集となっている。過去の棋譜を読むような気持ちで、先行研究をするのに最適である。</div>
<div>
<br /></div>
<div>
後半(Part 2)は、OKRと並列して導入されるべきツールであるCFRについて触れられている。CFRはCommunication(対話)とFeedbackとRecognition(承認)を意味する。ObjectiveとKey ResultをOKRで設定したあと、CFRによって十分な関係をメンバと築くことが推奨されている。</div>
<div>
<br /></div>
<div>
下記は本書で紹介されていた図である。シンプルでわかりやすく、また個人的にとても印象的だったので、ここに紹介する。OKRを評価・昇給と直接連動しないように切り離したものにしつつ、CFRによって対話・フィードバック・承認を行うことを意味しており、ただ単にOKRだけを導入することの不十分さがひと目で分かる。</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjba-bGRR6KTTVk57PY2eskl3ier9tzu5iVQ-jKS7qRcuDEgoAhvzKtQ8RfCkhkqcBFeUDW42d3bjnqTcZotDeWlrwS8ikAZJxjo0GEZFP9J7yJsvEbTQLEZtP_-wJdsGKV3sjAEa-r7vS2/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2020-07-27+%25E5%258D%2588%25E5%2589%258D10.40.45.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="624" data-original-width="816" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjba-bGRR6KTTVk57PY2eskl3ier9tzu5iVQ-jKS7qRcuDEgoAhvzKtQ8RfCkhkqcBFeUDW42d3bjnqTcZotDeWlrwS8ikAZJxjo0GEZFP9J7yJsvEbTQLEZtP_-wJdsGKV3sjAEa-r7vS2/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2020-07-27+%25E5%258D%2588%25E5%2589%258D10.40.45.png" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-77444726265944181272020-05-12T22:37:00.004+09:002020-05-12T22:37:46.154+09:00[読書感想文]Accelarate<br />
<a href="https://www.amazon.co.jp/Accelerate-Software-Performing-Technology-Organizations-ebook/dp/B07B9F83WM/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=accelerate&qid=1589276700&sr=8-1">Accelarate</a><br />
<br />
日本語版はこっち。<br />
<a href="https://www.amazon.co.jp/Lean%E3%81%A8DevOps%E3%81%AE%E7%A7%91%E5%AD%A6%EF%BC%BBAccelerate%EF%BC%BD-%E3%83%86%E3%82%AF%E3%83%8E%E3%83%AD%E3%82%B8%E3%83%BC%E3%81%AE%E6%88%A6%E7%95%A5%E7%9A%84%E6%B4%BB%E7%94%A8%E3%81%8C%E7%B5%84%E7%B9%94%E5%A4%89%E9%9D%A9%E3%82%92%E5%8A%A0%E9%80%9F%E3%81%99%E3%82%8B-impress-top-gear%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B07L2R3LTN/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=accelerate&qid=1589276700&sr=8-2">LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する</a><br />
<br />
<br />
<h2>
Who should read this?</h2>
少々おすすめ先に悩む本である。<br />
<br />
DevOpsのプラクティスの効果について理論付けがなされているので、DevOpsを自社に導入したい人にはいいかもしれないと思ったが、今の時代においてそもそもDevOpsを導入していないステージの会社にはいろいろと前提がかけているために読みやすさかける本になっているだろう。<br />
<br />
普段実践していることについて、主観的・感覚的には正しさを信じているのだが、それだけでは飽き足らず、客観的な裏付けがほしい、みたいな人が読んで嬉しい本になるのかもしれない。<br />
<br />
<h2>
Impression</h2>
<div>
DevOpsやLeanの手法に知見のある人には、少々退屈な本に映るかもしれない。いわば業界の常識となったプラクティスがデータに基づいて結論として書かれている。後半はServeyを行う際の理論や手法について書かれており、このあたりもDevOpsとLeanに興味があって本を手にとった人には期待はずれに思えるかもしれない。</div>
<div>
<br /></div>
<div>
普段当たり前と信じていたことが、 科学的な理論に基づいたServeyによって得られたデータによって裏付けられたことがわかるのが本書の利点だろうか。</div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-42805711945756138242020-03-08T00:38:00.001+09:002020-03-08T00:45:32.251+09:00[読書感想文]バイリンガル教育の本2冊ほど呼んだ。同じような内容であり、同じような感想を持ったのでまとめて書く<br />
<br />
<h2>
読んだ本</h2>
<a href="https://www.amazon.co.jp/%E5%AD%90%E3%81%A9%E3%82%82%E3%81%AE%E6%9C%AA%E6%9D%A5%E3%82%92%E5%BA%83%E3%81%92%E3%82%8B%E3%80%8C%E3%81%8A%E3%82%84%E3%81%93%E3%81%88%E3%81%84%E3%81%94%E3%80%8D-%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%82%92%E8%82%B2%E3%81%A6%E3%82%8B%E5%B9%BC%E5%85%90%E8%8B%B1%E8%AA%9E%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E5%B0%8F%E7%94%B0-%E3%81%9B%E3%81%A4%E3%81%93/dp/4907278713/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB&qid=1583594492&sr=8-5" target="_blank">子どもの未来を広げる「おやこえいご」 ~バイリンガルを育てる幼児英語メソッド~</a><br />
<a href="https://www.amazon.co.jp/%E3%81%8A%E3%81%86%E3%81%A1%E3%81%A7%E3%81%BB%E3%81%BC%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%81%AE%E8%82%B2%E3%81%A6%E6%96%B9-%E4%B8%BB%E5%A9%A6%E3%81%AE%E5%8F%8B%E7%A4%BE/dp/4074409402/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%81%8A%E3%81%86%E3%81%A1%E3%81%A7%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB&qid=1583594475&sr=8-1" target="_blank">おうちでほぼバイリンガルの育て方</a><br />
<h2>
まとめ</h2>
<div>
<br />
日本人夫婦が日本で子育てを行い、子供をバイリンガルに育てる実践が書かれている。</div>
<div>
インターナショナルスクールなどには通わせず、最低限の英語教室と母親による家庭教育が中心の様子。</div>
<div>
<br />
<a href="https://www.amazon.co.jp/%E5%AD%90%E3%81%A9%E3%82%82%E3%81%AE%E6%9C%AA%E6%9D%A5%E3%82%92%E5%BA%83%E3%81%92%E3%82%8B%E3%80%8C%E3%81%8A%E3%82%84%E3%81%93%E3%81%88%E3%81%84%E3%81%94%E3%80%8D-%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%82%92%E8%82%B2%E3%81%A6%E3%82%8B%E5%B9%BC%E5%85%90%E8%8B%B1%E8%AA%9E%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E5%B0%8F%E7%94%B0-%E3%81%9B%E3%81%A4%E3%81%93/dp/4907278713/ref=pd_aw_sbs_14_1/356-6927324-4094458?_encoding=UTF8&pd_rd_i=4907278713&pd_rd_r=5ead3e8f-7b1b-4c3a-9a53-254e367e3815&pd_rd_w=UCyFa&pd_rd_wg=Qy2Uy&pf_rd_p=1893a417-ba87-4709-ab4f-0dece788c310&pf_rd_r=FA8V5EPGT3EGGPZ1G6PJ&psc=1&refRID=FA8V5EPGT3EGGPZ1G6PJ" target="_blank">子どもの未来を広げる「おやこえいご」 ~バイリンガルを育てる幼児英語メソッド</a>の単著者を含む、計4人が自身の子供をバイリンガルに育てた経験を綴った本。実践内容の細かい違いはあるが、大抵は母親の献身的な本、DVD、Youtubeを使った大量の英語のシャワーを行っているようである。<br />
<br /></div>
<h2>
感想</h2>
<div>
やはり、尋常でない母親の献身ぶりが目を引く。大量の英語の本やYoutubeを駆使して、英語をインプットさせ、母親が自然な雰囲気で英語で話しかけることにより、英語力を身に着けさせているようだ。</div>
<div>
<br /></div>
<div>
英語の本やYoutubeを見せるあたりは安価であるので、親のモチベーション次第で真似はできそうである。他のバイリンガル本と同じく、育った子供がどの程度、英語と日本語が身についているのか、客観的に伺い知れる情報がないことだけが残念か。</div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-37956162343323408342020-03-08T00:29:00.002+09:002020-03-08T00:39:09.207+09:00[読書感想文]バイリンガルを育てる<a href="https://www.amazon.co.jp/%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%82%92%E8%82%B2%E3%81%A6%E3%82%8B%E2%80%950%E6%AD%B3%E3%81%8B%E3%82%89%E3%81%AE%E8%8B%B1%E8%AA%9E%E6%95%99%E8%82%B2-%E3%81%8F%E3%82%8D%E3%81%97%E3%81%8A%CE%A7%E3%83%96%E3%83%83%E3%82%AF%E3%82%B9-%E6%B9%AF%E5%B7%9D-%E7%AC%91%E5%AD%90/dp/4874241921/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%82%92%E8%82%B2%E3%81%A6%E3%82%8B&qid=1583593201&sr=8-3" target="_blank">バイリンガルを育てる</a><br />
<br />
<h2>
まとめ</h2>
英語教育やバイリンガル教育が専門の湯川笑子博士が自分自身の二人の子供にバイリンガル教育をさせたときの記録集。体験や観察をもとに論文も書いているようであり、詳細な記録は参考になる。<br />
<br />
教育内容として大きく目をひかれるのは下記のような事柄<br />
<br />
<ul>
<li>子供には常に英語で話しかける。</li>
<li>幼少期に英語の本の読み聞かせを毎日30分から2時間程度</li>
<li>ネイティブなEnglish Speakerと多くの交流があり、自宅にホームステイさせたり等、子供をInternationalな環境においていた。</li>
<li>子供は幼少期に海外で教育させた。</li>
<ul>
<li>長男。4ヶ月-1歳半と5歳5ヶ月-5歳10ヶ月までハワイ、6歳-8歳ころにスウェーデンの幼稚園、学校に通う</li>
<li>長女は4歳-5歳ころにスウェーデンの保育園に通う</li>
</ul>
</ul>
<h2>
感想</h2>
<div>
<a href="https://www.amazon.co.jp/%E3%81%8A%E3%81%86%E3%81%A1%E3%81%A7%E3%81%BB%E3%81%BC%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%81%AE%E8%82%B2%E3%81%A6%E6%96%B9-%E4%B8%BB%E5%A9%A6%E3%81%AE%E5%8F%8B%E7%A4%BE/dp/4074409402/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%81%8A%E3%81%86%E3%81%A1%E3%81%A7%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB&qid=1583594475&sr=8-1" target="_blank">おうちでバイリンガル</a>や<a href="https://www.amazon.co.jp/%E5%AD%90%E3%81%A9%E3%82%82%E3%81%AE%E6%9C%AA%E6%9D%A5%E3%82%92%E5%BA%83%E3%81%92%E3%82%8B%E3%80%8C%E3%81%8A%E3%82%84%E3%81%93%E3%81%88%E3%81%84%E3%81%94%E3%80%8D-%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB%E3%82%92%E8%82%B2%E3%81%A6%E3%82%8B%E5%B9%BC%E5%85%90%E8%8B%B1%E8%AA%9E%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89-%E5%B0%8F%E7%94%B0-%E3%81%9B%E3%81%A4%E3%81%93/dp/4907278713/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%90%E3%82%A4%E3%83%AA%E3%83%B3%E3%82%AC%E3%83%AB&qid=1583594492&sr=8-5" target="_blank">おやこえいご</a>などを読んだときも同じ感想を抱いたが、やはり親(特に母親)の尋常でない献身ぶりが目を引く。毎日2時間も英語の本を読み聞かせるだけでも、尋常でない気力が必要だし、ましてや海外に引っ越して現地の教育を受けさせるなどというのは並々ならぬ覚悟がいるだろう。著者の場合は、自分の研究テーマと同一していることもあり、仕事のキャリアと英語教育のメリットを同一化させられたのも大きな要因であろう。</div>
<div>
<br /></div>
<div>
参考にはなるが、一般的な日本人にとってすぐさま真似できそうな実践はなさそうである。また、結局この本で行ったバイリンガル教育の結果、成人した子どもたちがどのような英語力・日本語力が身についたのかが不明なのも実践の効果を伺い知れる情報がなく残念ではある。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-9966023995790004422020-02-29T13:38:00.000+09:002020-02-29T14:02:14.576+09:00Programming Kubernetes: Developing Cloud-Native Applications<h2>
Programming Kubernetes</h2>
<i>by Stefan Schimanski, Michael Hausenblas</i><br />
<i>Released July 2019</i><br />
<i>Publisher(s): O'Reilly Media, Inc.</i><br />
<i>ISBN: 9781492047094</i><br />
<i>Explore a preview version of Programming Kubernetes right now.</i><br />
<br />
<blockquote class="tr_bq">
O’Reilly members get unlimited access to live online training experiences, plus books, videos, and digital content from 200+ publishers.What the book is for?<br />The books describes about how to customize kubernetes engine itself. It doesn't describe about how to make an application on kubernetes. Thus it helps to understand how kubernetes controllers and components works.</blockquote>
<br />
<a href="https://www.oreilly.com/library/view/programming-kubernetes/9781492047094/">Programming Kubernetes</a><br />
<h2>
Who should read the book?</h2>
<div>
Anyone who would like to understand controllers and components running under the hood.</div>
<div>
Anyone who would like to the architecture of kubernetes.</div>
<div>
Anyone who would like to make custom controllers. </div>
<div>
Anyone who aspires to be a kubernetes contributer.<br />
Anyone who would like to know about <a href="https://github.com/kubernetes/client-go" target="_blank">client-go</a> library. </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Impression</h2>
<div>
The book is for advanced level kubernetes developers. Before reading the book, it is recommended to have understanding on what kubernetes controllers, API servers and Operators are and how they behave. Some experience of kubernetes application development might be good to understand the book deeply.<br />
<br />
<br />
<div>
<br /></div>
<div>
<br /></div>
</div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-32378538911009953572019-12-22T14:13:00.000+09:002020-02-29T14:13:38.316+09:00Designing Distributed Systems<h2>
Designing Distributed Systems</h2>
<i>Patterns and Paradigms for Scalable, Reliable Services</i><br />
<i>By Brendan Burns</i><br />
<i>Publisher: O'Reilly Media</i><br />
<i>Release Date: February 2018</i><br />
<i>Pages: 166</i><br />
<br />
<blockquote class="tr_bq">
Without established design patterns to guide them, developers have had to build distributed systems from scratch, and most of these systems are very unique indeed. Today, the increasing use of containers has paved the way for core distributed system patterns and reusable containerized components. This practical guide presents a collection of repeatable, generic patterns to help make the development of reliable distributed systems far more approachable and efficient.What the book is for?<br />
The book describes about example of architecture which is assumed to be built on kubernetes. Yaml files for kuberenetes are also included with explanation as well as the codes.</blockquote>
<div>
<a href="http://shop.oreilly.com/product/0636920072768.do" target="_blank">Designing Distributed Systems</a></div>
<div>
<a href="https://azure.microsoft.com/ja-jp/resources/designing-distributed-systems/en-us/" target="_blank">Free book from Microsoft is also available.</a></div>
<h2>
Who should read the book?</h2>
<div>
Anyone who would like to know design and architecture patterns for kubernetes.</div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Impression</h2>
<div>
It's good as a recipe book. Some basic and easy to apply architecture patterns are described with use cases. It should be one to be recommended to every kubernetes application developers.</div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-54387145005981882902019-08-12T12:10:00.001+09:002019-08-12T12:10:56.158+09:00SCRUM BOOT CAMP THE BOOKを読んでみた<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-large" id="productTitle" style="box-sizing: border-box; font-size: 19px !important; line-height: 1.3 !important;"><a href="https://www.amazon.co.jp/dp/4798129712/ref=cm_sw_r_tw_dp_U_x_MBnuDbSJ8FRX1" target="_blank">SCRUM BOOT CAMP THE BOOK</a></span></h1>
<div>
<span class="a-size-large" style="box-sizing: border-box; font-size: 19px !important; line-height: 1.3 !important;"><br /></span></div>
<div>
<br /></div>
<br />
スクラムについて一通り学べる。基礎編と実践編の二部構成になっている。<br />
基礎編で用語や概念が説明され、実践編ではそれをどのように適用していけばよいかが説明されている。<br />
<br />
座学で得られる限りの情報はこの本で学べるのではなかろうか。<br />
<br />
特に実践編ではスクラムを現場にどのように導入していく様子が漫画のストーリで描かれており、イメージが付きやすい。<br />
<br />
スクラム導入のための本としては良本。kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-22790898241144577712019-01-12T00:29:00.006+09:002019-01-12T00:29:51.094+09:00「エンジニアのためのマネジメントキャリアパス」を読んで管理職について考えてみた<a href="https://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E3%82%AD%E3%83%A3%E3%83%AA%E3%82%A2%E3%83%91%E3%82%B9-%E2%80%95%E3%83%86%E3%83%83%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%89%E3%81%8B%E3%82%89CTO%E3%81%BE%E3%81%A7%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B9%E3%82%AD%E3%83%AB%E5%90%91%E4%B8%8A%E3%82%AC%E3%82%A4%E3%83%89-Camille-Fournier/dp/4873118484" target="_blank"><br class="Apple-interchange-newline" />エンジニアのためのマネジメントキャリアパス ―テックリードからCTOまでマネジメントスキル向上ガイド</a><br />
<br />
を読んでみた。<br />
<br />
入社されたばかりの被管理者であるSoftware Engineerから始まり、チームを束ねるTech Lead(TL)、管理職や管理職の管理職、そしてVP of Engineering(VPoE)やCTOなどの役職について、期待される役割や課題などを説明している。ざっくりと昨今のTech界隈の役職を俯瞰するのには最適の一冊であろう。<br />
<br />
よくまとまってて読みやすい書籍ではある。ただ、ちょっと身も蓋もない言い方になるのだが、会社の役職なんて同じ名前でも役割が違うので、これを読んでどう活用するかは若干難しい。原著は米国の書籍であるので、当然のこととして、日米の文化的・法律的な差異もあるはずである。技術書のように、これを教科書として絶対視しても意味がないので、著者の界隈ではこういう共通認識で回ってるのだろう、といった参考程度に勉強するのが好ましいのであろう。<br />
<br />
<br />
一点だけ大きく興味をそそられた箇所があった。<br />
5.1節の「ITスキルの維持」の記述のところである。<br />
<br />
管理職に転向した後の技術的知識のアップデートに関する主張であり、これ以上コードを書いても技術力が頭打ちになるラインまでは管理職になってもコードを書き続けよう、ということであった。技術力がしっかりと身につくまでは、管理職としても大成できない。そして上級の管理職になってからも何らかの技術的コミットメントを続けるべきだ、と。この意見はとても正しく思える。<br />
<br />
私もソフトウェアエンジニアとしてのキャリアの中で、エンジニアから管理職に転向した方を多く知っている。ほとんどの方は、Mangerに転向したのを機にコーディングを行わなくなる。その結果、例えば20世紀にWindowsアプリの開発を行っていた人が、Windowsアプリのパラダイムのままネットの技術を語ったり、クラウド以前のInternet上でWebアプリを開発していた人が、その価値観のまま、クラウドの技術を捉える、といった状況に多く遭遇した。表面的な知識は間違ってないのだが、「それは根本的に考え方が違うんだよなあ」、と突っ込みたくなる状況である。<br />
<br />
もちろん、管理職という立場で時間の許す限りキャッチアップは続けているのだろうが、Webの前後、あるいはクラウドの前後、そしてマイクロサービスの前後といったような大きなパラダイムの変換があるときには、業務を前提に深くコードを書いていない限り自分の中の技術的パラダイムはアップデートできない。プライベートな時間で自分しか見ないレベルのコードを書いたとしても、当然のこととして仕事で向き合うのと理解の度合いは違う。業務外でコミットしているオープンソースがあったり、副業としてエンジニアを続けているのでない限り、どの立場になってもコードを書き続けない限りいずれその人の技術的価値観は時代遅れのものになるのだろう。<br />
<br />
<br />
ただ、言うのは簡単だが、マネージャ業務をしながら開発業務にもコミットし続けるのはとても厳しい。解決策としては、マネージャとエンジニアを数年おきに、すっぱりとJob Changeするくらいしかないかもしれない。米国ではよく(たまに?)あるとは聞くが、少なくとも日本ではあまり聞いたことがない。もしかしたら今後はこのようなJob Rotationが必要とされるかもしれない。<br />
<br />
<br />kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-81710042891484880332018-12-16T20:09:00.000+09:002018-12-16T20:09:27.816+09:00Golangのfake google searchフレームワークをjavaで書いてみた。その2その1を投稿したあと、某友人から「CompletableFuture使ったらもっとスッキリできるよ」って情報もらった。なので、それ使って書き換えてみた。<br />
<br />
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: consolas, "andale mono wt", "andale mono", "lucida console", "lucida sans typewriter", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", "nimbus mono l", monaco, "courier new", courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; overflow-wrap: break-word; padding: 15px; white-space: pre-wrap; word-break: break-all;"><pre style="color: black; font-family: menlo; font-size: 9pt;"><pre style="background-color: #f7f7f7; font-family: Menlo; font-size: 9pt;"><span style="background-color: #e4e4ff; color: navy; font-weight: bold;">import</span><span style="color: navy; font-weight: bold;"> </span>java.util.ArrayList;
<span style="color: navy; font-weight: bold;">import </span>java.util.List;
<span style="color: navy; font-weight: bold;">import </span>java.util.Random;
<span style="color: navy; font-weight: bold;">import </span>java.util.concurrent.*;
<span style="color: navy; font-weight: bold;">import </span>java.util.function.Supplier;
<span style="color: navy; font-weight: bold;">class </span>FakeSearch <span style="color: navy; font-weight: bold;">implements </span>Supplier<String>{
String <span style="color: #660e7a; font-weight: bold;">name </span>= <span style="color: navy; font-weight: bold;">null</span>;
<span style="color: navy; font-weight: bold;">public </span>FakeSearch(String name){
<span style="color: navy; font-weight: bold;">this</span>.<span style="color: #660e7a; font-weight: bold;">name </span>= name;
}
<span style="color: olive;">@Override</span><span style="color: olive;"> </span><span style="color: navy; font-weight: bold;">public </span>String get() {
<span style="color: navy; font-weight: bold;">try </span>{
Thread.<span style="font-style: italic;">sleep</span>((<span style="color: navy; font-weight: bold;">new </span>Random().nextInt(<span style="color: blue;">10</span>) * <span style="color: blue;">1000</span>));
}<span style="color: navy; font-weight: bold;">catch </span>(Exception e){
}
<span style="color: navy; font-weight: bold;">return </span><span style="color: #660e7a; font-weight: bold;">name</span>;
}
}
<span style="color: navy; font-weight: bold;">public class </span>CmpGoChannel2 {
<span style="color: navy; font-weight: bold;">public static void </span>First(Supplier<String> supplier1,Supplier<String> supplier2) <span style="color: navy; font-weight: bold;">throws </span>Exception{
CompletableFuture<String> future1 =
CompletableFuture.<span style="font-style: italic;">supplyAsync</span>(supplier1);
CompletableFuture<String> future2 =
CompletableFuture.<span style="font-style: italic;">supplyAsync</span>(supplier2);
CompletableFuture<Object> future3 = CompletableFuture.<span style="font-style: italic;">anyOf</span>(future1, future2);
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.println(future3.get());
}
<span style="color: navy; font-weight: bold;">public static void </span>main(String... args) <span style="color: navy; font-weight: bold;">throws </span>Exception{
FakeSearch web1 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Web1"</span>);
FakeSearch web2 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Web2"</span>);
FakeSearch image1 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Image1"</span>);
FakeSearch image2 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Image2"</span>);
FakeSearch video1 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Video1"</span>);
FakeSearch video2 = <span style="color: navy; font-weight: bold;">new </span>FakeSearch(<span style="color: green; font-weight: bold;">"Video2"</span>);
CmpGoChannel2 c = <span style="color: navy; font-weight: bold;">new </span>CmpGoChannel2();
List<Future<String>> list = <span style="color: navy; font-weight: bold;">new </span><span style="background-color: #e4e4ff;">ArrayList</span><>();
<span style="font-style: italic;">First</span>(web1,web2);
<span style="font-style: italic;">First</span>(image1,image2);
<span style="font-style: italic;">First</span>(video1,video2);
}
}</pre>
</pre>
</pre>
while(true)と終了フラグで乗り切ってた汚い部分がだいぶきれいになった。<br />
<br />
<pre style="background-color: #f7f7f7; font-family: menlo; font-size: 9pt;"><span style="color: navy; font-weight: bold;">public static void </span>First(Supplier<String> supplier1,Supplier<String> supplier2) <span style="color: navy; font-weight: bold;">throws </span>Exception{
CompletableFuture<String> future1 =
CompletableFuture.<span style="font-style: italic;">supplyAsync</span>(supplier1);
CompletableFuture<String> future2 =
CompletableFuture.<span style="font-style: italic;">supplyAsync</span>(supplier2);
CompletableFuture<Object> future3 = CompletableFuture.<span style="font-style: italic;">anyOf</span>(future1, future2);
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.println(future3.get());
}</pre>
<br />
<br />
行数もざっくり60行程度まで収まった。kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-19841960965178095632018-12-15T21:43:00.001+09:002018-12-16T20:09:12.947+09:00Golangのfake google searchフレームワークをjavaで書いてみた。その1<a href="https://talks.golang.org/2012/concurrency.slide">Go concurrency patterns</a>で触れられていた<a href="https://talks.golang.org/2012/concurrency.slide#42">Google SearchのFake frameworkのコード</a>が非常にすっきり記載されていて感動したので、これをJavaで書いたらどうなるんだろうと好奇心から書いてみた。<br />
<br />
まず、Go言語の方のやつを、書き出してみる。<br />
<br />
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: consolas, "andale mono wt", "andale mono", "lucida console", "lucida sans typewriter", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", "nimbus mono l", monaco, "courier new", courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; overflow-wrap: break-word; padding: 15px; white-space: pre-wrap; word-break: break-all;"><pre style="background-color: #f7f7f7; color: black; font-family: 'Menlo'; font-size: 9.0pt;"><span style="color: navy; font-weight: bold;">package </span>main
<span style="color: navy; font-weight: bold;">import </span>(
<span style="color: green; font-weight: bold;">"time"</span><span style="color: green; font-weight: bold;"> "math/rand"</span><span style="color: green; font-weight: bold;"> "fmt"</span>)
<span style="color: navy; font-weight: bold;">var </span>(
Web1 = fakeSearch(<span style="color: green; font-weight: bold;">"web1"</span>)
Image1 = fakeSearch(<span style="color: green; font-weight: bold;">"image1"</span>)
Video1 = fakeSearch(<span style="color: green; font-weight: bold;">"video1"</span>)
Web2 = fakeSearch(<span style="color: green; font-weight: bold;">"web2"</span>)
Image2 = fakeSearch(<span style="color: green; font-weight: bold;">"image2"</span>)
Video2 = fakeSearch(<span style="color: green; font-weight: bold;">"video2"</span>)
)
<span style="color: navy; font-weight: bold;">type </span>Result string
<span style="color: navy; font-weight: bold;">type </span>Search <span style="color: navy; font-weight: bold;">func</span>(query string) Result
<span style="color: navy; font-weight: bold;">func </span>fakeSearch(kind string) Search {
<span style="color: navy; font-weight: bold;">return func</span>(query string) Result {
time.Sleep(time.Duration(rand.Intn(<span style="color: blue;">100</span>)) * time.<span style="color: #660e7a; font-style: italic; font-weight: bold;">Millisecond</span>)
<span style="color: navy; font-weight: bold;">return </span>Result(fmt.Sprintf(<span style="color: green; font-weight: bold;">"%s result for %q\n"</span>, kind, query))
}
}
<span style="color: navy; font-weight: bold;">func </span>First(query string, replicas ...Search) Result {
c := make(<span style="color: navy; font-weight: bold;">chan </span>Result)
searchReplica := <span style="color: navy; font-weight: bold;">func</span>(i int) { c <- replicas[i](query) }
<span style="color: navy; font-weight: bold;">for </span>i := <span style="color: navy; font-weight: bold;">range </span>replicas {
<span style="color: navy; font-weight: bold;">go </span>searchReplica(i)
}
<span style="color: navy; font-weight: bold;">return </span><-c
}
<span style="color: navy; font-weight: bold;">func </span>Google(query string) (results []Result) {
c := make(<span style="color: navy; font-weight: bold;">chan </span>Result)
<span style="color: navy; font-weight: bold;">go func</span>() { c <- First(query, Web1, Web2) } ()
<span style="color: navy; font-weight: bold;">go func</span>() { c <- First(query, Image1, Image2) } ()
<span style="color: navy; font-weight: bold;">go func</span>() { c <- First(query, Video1, Video2) } ()
timeout := time.After(<span style="color: blue;">80 </span>* time.<span style="color: #660e7a; font-style: italic; font-weight: bold;">Millisecond</span>)
<span style="color: navy; font-weight: bold;">for </span>i := <span style="color: blue;">0</span>; i < <span style="color: blue;">3</span>; i++ {
<span style="color: navy; font-weight: bold;">select </span>{
<span style="color: navy; font-weight: bold;">case </span>result := <-c:
results = append(results, result)
<span style="color: navy; font-weight: bold;">case </span><-timeout:
fmt.Println(<span style="color: green; font-weight: bold;">"timed out"</span>)
<span style="color: navy; font-weight: bold;">return</span><span style="color: navy; font-weight: bold;"> </span>}
}
<span style="color: navy; font-weight: bold;">return</span>}
<span style="color: navy; font-weight: bold;">func </span>main() {
rand.Seed(time.Now().UnixNano())
start := time.Now()
result := First(<span style="color: green; font-weight: bold;">"golang"</span>,
fakeSearch(<span style="color: green; font-weight: bold;">"replica 1"</span>),
fakeSearch(<span style="color: green; font-weight: bold;">"replica 2"</span>))
elapsed := time.Since(start)
fmt.Println(result)
fmt.Println(elapsed)
}</pre>
</pre>
</div>
<div>
<br /></div>
<br />
コードの解説はスライドに譲るとして、First関数の中での、return <-c の使い方が素晴らしい。<br />
<br />
で、これをJavaで書いてみた。<br />
<br />
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: consolas, "andale mono wt", "andale mono", "lucida console", "lucida sans typewriter", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", "nimbus mono l", monaco, "courier new", courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; overflow-wrap: break-word; padding: 15px; white-space: pre-wrap; word-break: break-all;"><pre style="background-color: #f7f7f7; color: black; font-family: 'Menlo'; font-size: 9.0pt;"><span style="color: navy; font-weight: bold;">import </span>java.util.ArrayList;
<span style="color: navy; font-weight: bold;">import </span>java.util.List;
<span style="color: navy; font-weight: bold;">import </span>java.util.concurrent.*;
<span style="color: navy; font-weight: bold;">class </span>Web1 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">try </span>{
Thread.<span style="font-style: italic;">sleep</span>(<span style="color: blue;">10</span>*<span style="color: blue;">1000</span>);
}<span style="color: navy; font-weight: bold;">catch </span>(Exception e){
}
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Web1"</span>;
}
}
<span style="color: navy; font-weight: bold;">class </span>Web2 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Web2"</span>;
}
}
<span style="color: navy; font-weight: bold;">class </span>Image1 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">try </span>{
Thread.<span style="font-style: italic;">sleep</span>(<span style="color: blue;">10</span>*<span style="color: blue;">1000</span>);
}<span style="color: navy; font-weight: bold;">catch </span>(Exception e){
}
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Image1"</span>;
}
}
<span style="color: navy; font-weight: bold;">class </span>Image2 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Image2"</span>;
}
}
<span style="color: navy; font-weight: bold;">class </span>Video1 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">try </span>{
Thread.<span style="font-style: italic;">sleep</span>(<span style="color: blue;">10</span>*<span style="color: blue;">1000</span>);
}<span style="color: navy; font-weight: bold;">catch </span>(Exception e){
}
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Video1"</span>;
}
}
<span style="color: navy; font-weight: bold;">class </span>Video2 <span style="color: navy; font-weight: bold;">implements </span>Callable<String>{
<span style="color: navy; font-weight: bold;">public </span>String call() {
<span style="color: navy; font-weight: bold;">return </span><span style="color: green; font-weight: bold;">"Video2"</span>;
}
}
<span style="color: navy; font-weight: bold;">public class </span>CmpGoChannel {
<span style="color: navy; font-weight: bold;">public static void </span>First(ExecutorService executor1,Callable<String> callable1, Callable<String> callable2) <span style="color: navy; font-weight: bold;">throws </span>Exception{
List<Future<String>> list = <span style="color: navy; font-weight: bold;">new </span>ArrayList<>();
list.add(executor1.submit(callable1));
list.add(executor1.submit(callable2));
<span style="color: navy; font-weight: bold;">boolean </span>loopDone = <span style="color: navy; font-weight: bold;">false</span>;
<span style="color: navy; font-weight: bold;">while</span>(<span style="color: navy; font-weight: bold;">true</span>) {
<span style="color: navy; font-weight: bold;">for </span>(Future<String> f : list) {
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.print(<span style="color: green; font-weight: bold;">"."</span>);
<span style="color: navy; font-weight: bold;">if </span>(f.isDone()) {
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.println(f.get());
loopDone = <span style="color: navy; font-weight: bold;">true</span>;
<span style="color: navy; font-weight: bold;">break</span>;
}
}
<span style="color: navy; font-weight: bold;">if</span>(loopDone){
<span style="color: navy; font-weight: bold;">break</span>;
}
}
}
<span style="color: navy; font-weight: bold;">public static void </span>main(String... args) <span style="color: navy; font-weight: bold;">throws </span>Exception{
ExecutorService executor1 = Executors.<span style="font-style: italic;">newFixedThreadPool</span>(<span style="color: blue;">2</span>);
ExecutorService executor2 = Executors.<span style="font-style: italic;">newFixedThreadPool</span>(<span style="color: blue;">2</span>);
ExecutorService executor3 = Executors.<span style="font-style: italic;">newFixedThreadPool</span>(<span style="color: blue;">2</span>);
CmpGoChannel c = <span style="color: navy; font-weight: bold;">new </span>CmpGoChannel();
List<Future<String>> list = <span style="color: navy; font-weight: bold;">new </span>ArrayList<>();
Callable<String> web1 = <span style="color: navy; font-weight: bold;">new </span>Web1();
Callable<String> web2 = <span style="color: navy; font-weight: bold;">new </span>Web2();
<span style="font-style: italic;">First</span>(executor1,web1,web2);
Callable<String> image1 = <span style="color: navy; font-weight: bold;">new </span>Image1();
Callable<String> image2 = <span style="color: navy; font-weight: bold;">new </span>Image2();
<span style="font-style: italic;">First</span>(executor2,image1,image2);
Callable<String> video1 = <span style="color: navy; font-weight: bold;">new </span>Video1();
Callable<String> video2 = <span style="color: navy; font-weight: bold;">new </span>Video2();
<span style="font-style: italic;">First</span>(executor3,video1,video2);
executor1.shutdown();
executor2.shutdown();
executor3.shutdown();
}
}</pre>
</pre>
</div>
<div>
<br /></div>
<br />
まず気づいたのが、Javaにchannelに相当する仕組みがなかったこと。JavaのConcurrencyはそんなに人気のあるものではなかったが、そうは言ってもそれなりに使われている実績はあるので、書こうとしてみて「そういや、なかったな」みたいな気付きがあった。<br />
<br />
なので、ここは
<br />
<br />
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: consolas, "andale mono wt", "andale mono", "lucida console", "lucida sans typewriter", "dejavu sans mono", "bitstream vera sans mono", "liberation mono", "nimbus mono l", monaco, "courier new", courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; overflow-wrap: break-word; padding: 15px; white-space: pre-wrap; word-break: break-all;"><pre style="background-color: #f7f7f7; color: black; font-family: 'Menlo'; font-size: 9.0pt;"><span style="color: navy; font-weight: bold;">while</span>(<span style="color: navy; font-weight: bold;">true</span>) {
<span style="color: navy; font-weight: bold;">for </span>(Future<String> f : list) {
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.print(<span style="color: green; font-weight: bold;">"."</span>);
<span style="color: navy; font-weight: bold;">if </span>(f.isDone()) {
System.<span style="color: #660e7a; font-style: italic; font-weight: bold;">out</span>.println(f.get());
loopDone = <span style="color: navy; font-weight: bold;">true</span>;
<span style="color: navy; font-weight: bold;">break</span>;
}
}
<span style="color: navy; font-weight: bold;">if</span>(loopDone){
<span style="color: navy; font-weight: bold;">break</span>;
}
}</pre>
</pre>
</div>
<div>
<br /></div>
といった感じで while(true)と終了フラグで乗り切るというちょっと汚いコードで対応した。<br />
このあたりですでに、簡素なコードを書けるというGoの魅了が十分に表れている。<br />
<br />
<br />
<br />kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-80316103285714797232018-11-29T23:13:00.001+09:002018-11-29T23:13:24.634+09:00GraphQLを触ってみたThe better Restとの触れ込みのあるGraphQLを触ってみた。<br />
<br />
<h2>
GraphQLとは何か?</h2>
ここ数年、Webではスタンダードとして使われていたRest APIに対する不満から生まれたバックエンドとフロントエンド間の通信規約である。具体的には主に下記のようなものを課題として捉えている。<br />
<br />
<h3>
課題1 endpointから返されるデータを全部使わない(Over-fetching)</h3>
<div>
たとえばユーザのプロフィール画面を作りたくて、/user/profiesのエンドポイントを叩いたとする。大体の場合は、これのレスポンスに含まれるすべてのデータは必要とせずに、一部のデータのみ使うであろう。使われないデータは無駄であり、結果として効率的でない通信のやり取りに繋がる。<br />
<br /></div>
<h3>
課題2 endpointをいくつも叩かなければいけない(Under-fetching)</h3>
<div>
Over-fetchingと表裏一体ではあるのだが、一つの画面に必要となるデータをやり取りするにも、 user/<id>を叩き、次にuser/<id>/profiles、そして最後にuser/<id>/photosの3つのendpointを叩く必要になることがある。これは一つのendpointから返されるレスポインスでは足りないがために起き、そのため複数のendpointへの通信が過剰に走ることになる。パフォーマンスの観点からは基本的にフロントエンドとバックエンド間の通信は少なければ少ないほど好ましい。</div>
<div>
<br /></div>
<h3>
課題3 endpoint作成のコストが高い</h3>
<div>
endpointを一個作るにはフロントエンド・バックエンド側双方の調整が必要となるため、作成のコストが高い。<br />
<br />
<br />
<h2>
実際に作ってみた</h2>
GraphQLを推進する会社にApollo社がある。Apollo社が提供するApollo Serverを使うと比較的かんたんにGraphQLを試すことができる。<br />
<br />
<a href="https://www.apollographql.com/docs/apollo-server/getting-started.html">Getting started</a><br />
<br />
出だしに書いてあったとおり、本当に10分で雰囲気がつかめる。もしかしたら10分もいらないかも。<br />
<br />
<h2>
感想</h2>
</div>
<div>
npmで初期化するだけで、playgroundがついてくるのは便利。ただ、ドキュメントが不親切で断片的なコードしか書いてないため、ちょっとした改良をするにも試行錯誤が必要。急がばまわれ的に、まずはapollo serverを使わない素のgraphql.jsなどを触って基礎を先に身につけたほうが良さそう。</div>
<div>
<br /></div>
<div>
</div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-11276101993334707742018-10-14T22:16:00.000+09:002018-12-16T12:53:17.841+09:00Go言語の学習に使った本・サイト<br />
<a href="https://tour.golang.org/welcome/1">A Tour of Go</a><br />
定番どころのサイト。一通りのSyntax等は学べるか、サラッと書かれてるので基本を知る以外には情報が足りない感じがある。ブラウザ上でGoの実行環境があるので、スキマ時間に理解を進めるのには役立ちそう<br />
<br />
<a href="https://www.amazon.co.jp/dp/4798142417/ref=cm_sw_r_tw_dp_U_x_py.GBb0SKGG8H">スターティングGo言語 (CodeZine BOOKS) 松尾 愛賀 </a><br />
入門書として良書。C、Java、Pythonなどの経験がある人に向けたGoの入門書。文法を網羅的に説明しつつ、落とし穴となりそうなところをちゃんと解説している。注意点としては全くのプログラミング初心者を対象としてないところ。プログラミング未経験者がいきなり本書を読んでも理解ができる前提で書かれた本ではない。<br />
<br />
<a href="https://www.amazon.co.jp/Go%E8%A8%80%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-Mat-Ryer/dp/4873117526/ref=sr_1_1?ie=UTF8&qid=1535375475&sr=8-1&keywords=Go%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3">Go言語によるWebアプリケーション開発</a><br />
タイトルのまんまGo言語でWebアプリケーション開発をするために必要な知識についてまとめてある本。(読み終わったらまた書く)<br />
<br />
<a href="https://www.amazon.co.jp/Go-Action-William-Kennedy/dp/1617291781/ref=sr_1_1?s=books&ie=UTF8&qid=1535375567&sr=1-1&keywords=Go+in+action">Go in Action</a><br />
Manning者のIn Actionシリーズ。個人的にIn Actionシリーズの大ファンなので、購入したが、これは若干いまいち。In Actionシリーズは、実際的なサンプルを作りながら、その技術セットに付いて学べるのが特徴であるが、本書に関してはGoの理解を進めるのにあまり向いている作りではなかったkentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-86050926450246565082018-09-05T22:54:00.000+09:002018-09-05T22:54:25.809+09:00メルカリの俺的活用方法フリマアプリのメルカリ。いろんな使い方があると思うけど、俺が気に入ってる代表的な使い方を紹介してみる。<br />
<br />
<br />
1. コミック全巻セットを買って、読んで、そしてまた売る。<br />
<br />
コミックは場所的に嵩張るので、よっぽど気に入った本以外は家にキープしておく場所がない。解決策としてはTSUTAYAとかで宅配レンタルするとか、漫画喫茶で読むとかあるんだけど、それぞれ微妙な点がある。<br />
<ul>
<li>宅配レンタル</li>
</ul>
TSUTAYAの場合、送料まで含めると<a href="https://www.discas.net/netdvd/dcp/guide/gidCmcService.html">一冊あたり150円</a>くらいするので、結構コスパが悪い。またうっかり返却日をすぎると、容赦なく延滞料金が取られる<br />
<ul>
<li>満喫</li>
</ul>
<br />
フリータイムとか利用すれば、かなりコスパは、個人的にはフリータイム3時間とか6時間とかで集中して漫画を読むのとか楽しめない。一冊読んだあと、ネット見て、またその後、次の巻を読んだり、あいた時間に一冊だけ読んだりと、ダラダラ読むのが好きなので、正直言って満喫に何時間も缶詰するとか若干苦行感ある。家でのんびりと読みたい。<br />
<br />
ということで、メルカリとかで漫画全巻セットを買って、自分のペースで読み終わったあとに、またその漫画を売りに出すのが、おすすめとなる。大体の場合、買ったときとほぼ同じくらいの値段で売れるので、手数料+送料がランニングコストとなる。30冊くらいの漫画セットであれば、両方合わせてもせいぜい800-1200円程度である。<br />
<br />
2. ゲームを買って、遊んで、また売る<br />
コミックと一緒だけど、ゲームなんかも大体の場合は一度遊ぶと二度とやらないので、遊んだあとサクッと処分できると嬉しい。新作は値段の下落が早いけど、発売後数ヶ月から年単位で時間がたった古いゲームなんかは、コミック全巻セットと同様に大きく値段が下がらないので、だいたい買ったときの値段で売れることになる。ゲームは漫画に比べて小さく、当然送料も安く済むので、ランニングコスト的には更に安く上がる。手数料+送料で400-600円程度で済む。<br />
<br />
というふうに、上げてみると、ほとんどシェアリングサービス的な使い方になった。もちろん、店で新品で買ったものをただ売ったり、逆に欲しいものをメルカリで中古で買ったりもしているが、とりわけ個人的には漫画とゲームの使い方が気に入ってる。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-91893089674823566742018-02-04T06:58:00.005+09:002018-02-04T07:23:24.162+09:00日経新聞をKindleで読むまでにしたこと<h2>
Kindleのフォーマット(mobi)への変換</h2>
<div>
<br /></div>
日経新聞の電子版を長らくPCで読んでたのだが、目を酷使する時間を少しでも減らそうと思いKindleで読める方法がないか探ってみた。<br />
<div>
<br /></div>
<div>
調べたところ、<a href="https://calibre-ebook.com/">Calibre</a>というその筋では有名なソフトウェアが存在するようなので、試してみた。</div>
<div>
<br /></div>
<div>
何度か試したのだが、どうやら最近の日経新聞電子版ではエラーが発生するようで、Kindle化するまでに至らなかった。</div>
<div>
<br /></div>
<div>
幸い、Calibreは開発をオープンソースベースで行っているようで<a href="https://github.com/kovidgoyal/calibre">github</a>にソースが管理されていた。その為、必要な修正をpushし、本家に取り込んでもらうことができた。</div>
<div>
<br /></div>
<div>
Ver 3.15以上であれば日経新聞を無事読み込むことができるので、エラーに悩まされていた人はぜひとも試してほしい</div>
<div>
<br />
リファレンス<br />
<a href="http://gihyo.jp/lifestyle/serial/01/calibre/0001">オープンソースの電子書籍管理ソフト「Calibre」を使いこなそう!</a></div>
<h2>
<br />Amazon Web Serviceで自動配信</h2>
<div>
Calibre本体にタイマー機能がついているので、PCを起動しっぱなしにしておけば、毎日設定した時間に日経新聞を取得し、Kindleまで配信することが可能であるが、現在私はラップトップPCしか使っていないため、毎朝手動で朝刊を取得し、Kindleまでメールで送信する必要があった。毎日のこととなるとこの単純作業も地味に辛い。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
はじめはフリー枠を恒久的に用意しているHerokuなどを使いたかったのだが、Calibreの場合は本体をインストールするという作業が必要になるため、Herokuでは技術的にこれを実現できなかった。</div>
<div>
<br /></div>
<div>
AWSならば基本的にはLinuxをそのまま利用できるのでこちらを利用することとした。</div>
<div>
まずは一年間のトライアル枠で利用するので料金はかからない。厳密に料金の見積もりを取ってないが、Amazon CouldWatchというこれまたAmazonのサービスを使って朝刊と夕刊の時間を取得する時間だけインスタンスを立ち上げることができたので、トライアル期間を過ぎてもおそらくそれほど多大な料金はかからないだろう。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
分かる人にしかわからないレベルの粒度で、AWSの自動配信のためにやったことを書いておく。</div>
<div>
<br /></div>
<h3>
1. EC2インスタンスを用意する。Amazon Linux AMIを利用した</h3>
<div>
<br /></div>
<h3>
2. Amazon Lambdaを利用して、EC2インスタンスを起動するFunction、停止するFunctionを用意する</h3>
<div>
<br /></div>
<div>
起動のためのFunction(python2.7)</div>
<div>
<br /></div>
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; padding: 15px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">import boto3
# Enter the region your instances are in. Include only the region without specifying Availability Zone; e.g.; 'us-east-1'
region = 'XX-XXXXX-X'
# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']
instances = ['X-XXXXXXXX']
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.start_instances(InstanceIds=instances)
print 'started your instances: ' + str(instances)</pre>
</div>
<div>
停止のためのFunction</div>
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; padding: 15px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">import boto3
# Enter the region your instances are in. Include only the region without specifying Availability Zone; e.g., 'us-east-1'
region = 'XX-XXXXX-X'
# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']
instances = ['X-XXXXXXXX']
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.stop_instances(InstanceIds=instances)
print 'stopped your instances: ' + str(instances)</pre>
</div>
<h3>
<br />3. Amazon CloudWatchを利用して、2で作成したそれぞれのFunctionを実行するEventを作成する。</h3>
<div>
例えば朝刊は午前のJSTのAM2:30に配信されるので、起動をAM2:30、停止をAM3:20にした。</div>
<h3>
4. 1で用意したEC2にCalibreをインストールする</h3>
<div>
<div>
<br /></div>
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.6em; margin-bottom: 30px; padding: 15px; word-break: break-all; word-wrap: break-word;"><span style="color: #333333; font-family: "consolas" , "andale mono wt" , "andale mono" , "lucida console" , "lucida sans typewriter" , "dejavu sans mono" , "bitstream vera sans mono" , "liberation mono" , "nimbus mono l" , "monaco" , "courier new" , "courier" , monospace;"><span style="font-size: 14px; white-space: pre-wrap;">%>yum update
%>sudo yum install libGL
%>sudo -v && wget -nv -O- https://download.calibre-ebook.com/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"</span></span></pre>
</div>
<div>
</div>
</div>
<div>
私の場合はcalibreのインストール前に、libGLを手動でインストールする必要があった。</div>
<h3>
<br />5. 日経新聞をmobi化するためのコマンド、およびそれを自分のKindleに配信するためのコマンドをスクリプト化する。</h3>
<div>
<br /></div>
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; padding: 15px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">%>/opt/calibre/ebook-convert '日本経済新聞(朝刊・夕刊).recipe' /tmp/nikkei.mobi --username=<日経のIDとなるメールアドレス> --password=<そのパスワード>
<span style="color: black; font-family: "times"; font-size: small; white-space: normal;">%>/opt/calibre/calibre-smtp -r mail.gmx.com --username <送信用のメールアドレス> --password <パスワード> --port 587 -a /tmp/nikkei.mobi <送信用のメールアドレス></span><span style="color: black; font-family: "times"; font-size: small; white-space: normal;"> <Kindleのドキュメント受付用のメールアドレス></span><span style="color: black; font-family: "times"; font-size: small; white-space: normal;"> subject</span></pre>
</div>
<div>
<blockquote class="tr_bq">
<br /></blockquote>
</div>
<h3>
6. 5のスクリプトをcronで実行するよう設定する</h3>
<div>
<div>
<pre style="background-color: #f7f7f7; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; color: #333333; font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; font-size: 14px; line-height: 1.6em; margin-bottom: 30px; padding: 15px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;">35 17 * * * /home/ec2-user/calibre.sh</pre>
</div>
<div>
</div>
</div>
<div>
<style type="text/css">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff}
span.s1 {font-variant-ligatures: no-common-ligatures}
</style>
<br />
<blockquote class="tr_bq">
<br /></blockquote>
</div>
<div>
<br /></div>
<div>
リファレンス</div>
<div>
<a href="https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/">How do I stop and start Amazon EC2 instances at regular intervals using AWS Lambda?</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-71117140617544211972017-01-01T08:44:00.002+09:002017-01-01T08:44:59.885+09:002016年に読んで・観て何かしら記憶に残っているものリスト(フィクション編)<div>
観たフィクションで面白かったものまとめ。もっと色々観たはずだけどあまり覚えてないな。Amazon Primeで無料のやつとか履歴が残ってないので、何を観たのか思い出すのが大変。</div>
<div>
<br /></div>
<div>
<a href="http://www.hbo.com/game-of-thrones"><br /></a></div>
<div>
<a href="http://www.hbo.com/game-of-thrones"><span style="font-size: x-large;">The Game of Thrones</span></a></div>
<div>
<br /></div>
<div>
全米で大ヒットのドラマ。評判に違わず死ぬほど面白かった。現行の最新であるシーズン6まで一気に観てしまった。原作も読み始めた。ドラマの方も時間を作ってもう一度シーズン1からじっくりとみたい。</div>
<div>
<span style="font-size: x-large;"><a href="http://www.hbo.com/silicon-valley"><br /></a></span></div>
<div>
<span style="font-size: x-large;"><a href="http://www.hbo.com/silicon-valley">Silicon Valley</a></span></div>
<div>
これも一部では大ヒットのドラマ。なかなかコミカルで楽しい。</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><a href="https://www.amazon.com/dp/B00LI0VA4Q/ref=dv_web_wtls_list_pr_5">Extant</a></span></div>
<div>
ヒューマノイドロボットの話。本筋とは関係ないけど、アメリカンカルチャーに基づく夫婦の関係が描かれてて興味深かった。ああやってパワフルな女性を支える男性像が昨今の理想的な夫像なのだろうか。</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><a href="https://www.amazon.com/Natural-Selection/dp/B00BVYNSLC/ref=sr_1_1?s=instant-video&ie=UTF8&qid=1483227750&sr=1-1&keywords=orphan+black">Orphan Black</a></span></div>
<div>
Amazon Primeで無料だったシーズン3まで観た。面白かったので4もフリーになったら見よう。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 27.95px;"><a href="https://www.amazon.com/Martian-Michael-Pe%C3%B1a/dp/B018HIZSIA/ref=sr_1_1?ie=UTF8&qid=1483224693&sr=8-1&keywords=martian">The Martian</a></span></div>
<span style="background-color: white; font-family: Arial, sans-serif;">邦題は「オデ</span><span style="background-color: white; font-family: Arial, sans-serif;">ッセイ」。火星ミッションの話。月がありきたりになったのでそろそろ火星が映画のネタになる頃か。前半の</span><span style="font-family: Arial, sans-serif;">Matt Damonが淡々と危機を切り盛りして行くところは楽しかったが、後半はすごいグダグダ。</span><br />
<span style="font-family: Arial, sans-serif;"><a href="https://www.amazon.co.jp/gp/product/B00S0E4JW8/ref=series_rw_dp_sw"><br /></a></span>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B00S0E4JW8/ref=series_rw_dp_sw">ダンジョン飯 1巻<ダンジョン飯></a></span></h1>
<div>
タイトル通りダンジョンで飯を食う話。まあなんか面白い。</div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/PEACE-MAKER-1-%E3%83%A4%E3%83%B3%E3%82%B0%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%82%B3%E3%83%9F%E3%83%83%E3%82%AF%E3%82%B9DIGITAL-%E7%9A%86%E5%B7%9D%E4%BA%AE%E4%BA%8C-ebook/dp/B00B22XP7K/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1483225106&sr=1-1&keywords=peace+maker+1">PEACE MAKER 1</a></span></h1>
</div>
<div>
期間限定で5巻まで無料だったので読んでみた。非常に面白かったので、全部買っても良かったが、冊数が多いので結構金が掛かりそう。ここまで金かけるならKindleじゃなくて紙本で買いたい。</div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/%E6%AE%BA%E3%81%97%E5%B1%8B%EF%BC%91%EF%BC%88%E3%82%A4%E3%83%81%EF%BC%89%EF%BC%91-%E5%B1%B1%E6%9C%AC%E8%8B%B1%E5%A4%AB-ebook/dp/B01LYYLBGZ/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1483225266&sr=1-1&keywords=%E6%AE%BA%E3%81%97%E5%B1%8B1">殺し屋1</a></span></h1>
</div>
<div>
これもKindleで一冊11円とかで売ってたので全部買ってみた。グロい描写が多い。読後感は良くない。でもなんか読むのをやめられなかった。</div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B00HUIL5OA/ref=oh_aui_d_detailpage_o08_?ie=UTF8&psc=1">累</a></span></h1>
</div>
<div>
演劇のストーリのところが趣向が凝らされてる感じがしていい。いつか時間があったらこういう古典を読んでみても面白そう。漫画としても読み応えはある。</div>
<div>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 27.95px;"><br /></span></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.com/Ted-Mark-Wahlberg/dp/B00AMBM9MO/ref=sr_1_2?s=instant-video&ie=UTF8&qid=1483225567&sr=1-2&keywords=TED">TED/TED2</a></span></h1>
</div>
<div>
シニカルな熊のTEDが観てて面白い。このくらい英語で口が回るようになりたい</div>
<div>
<br /></div>
<div>
<a href="https://www.amazon.com/Harry-Potter-Sorcerers-Daniel-Radcliffe/dp/B00AP06III/ref=sr_1_1?s=instant-video&ie=UTF8&qid=1483227207&sr=1-1&keywords=harry+potter"><br /></a></div>
<div>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 27.95px;"><a href="https://www.amazon.com/Harry-Potter-Sorcerers-Daniel-Radcliffe/dp/B00AP06III/ref=sr_1_1?s=instant-video&ie=UTF8&qid=1483227207&sr=1-1&keywords=harry+potter">Harry Potter and the Sorcerer's Stone</a></span></div>
<div>
ハリポタシリーズ。実は観たことなかった。全部通してみたけど、思ってたより面白い。イギリス英語満載なので、英語の練習にもいいかも。原作も読んでみようと思ったけど、ストーリはやはり子供向けなので、途中で飽きそうだな。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 27.95px;"><br /></span></div>
<div>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 27.95px;"><br /></span></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-27112046357526536472017-01-01T08:00:00.000+09:002017-01-01T08:00:05.996+09:002016年に読んで何かしら記憶に残ってる本リスト(技術書編)2016年に読んでよかった技術書をリストしておく。<br />
そもそも技術書はそんなにいっぱい読めないので、母集団は多くない。<br />
積ん読もいっぱいあるので、なんとか消化しなくては。<br />
<br />
<div>
<h1 class="a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: Arial, sans-serif; font-size: 28px; line-height: 1.2; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px; text-rendering: optimizeLegibility;">
<span class="a-size-extra-large" id="productTitle" style="box-sizing: border-box; line-height: 1.2 !important; text-rendering: optimizeLegibility;"><a href="https://www.amazon.com/Reinforcement-Learning-Introduction-Adaptive-Computation/dp/0262193981/ref=sr_1_1?ie=UTF8&qid=1483221482&sr=8-1&keywords=reinforcement+learning">Reinforcement Learning</a></span></h1>
</div>
<div>
教科学習の教祖Suttonによる教科学習の本。刊行が1998年と古いので、それだけが残念だが、例題がいっぱい載っているお陰で理解がし易い。説明もまあ、この手の本にしてはわかりやすい部類だろう。何よりも、章立ての構成が美しい。当然だが、頭が相当いい人なんだろう。この本一冊だけで基礎が手にはいる。第二版を執筆中とのことなので一日も早い出版が望まれる。</div>
<div>
<br /></div>
<div>
<a href="https://www.amazon.co.jp/%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AE%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92-%E7%89%A7%E9%87%8E-%E8%B2%B4%E6%A8%B9/dp/4627880316/ref=sr_1_1?ie=UTF8&qid=1483221437&sr=8-1&keywords=%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92"><br /></a></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-large" id="productTitle" style="box-sizing: border-box; font-size: 19px !important; line-height: 1.3 !important;"><a href="https://www.amazon.co.jp/%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AE%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92-%E7%89%A7%E9%87%8E-%E8%B2%B4%E6%A8%B9/dp/4627880316/ref=sr_1_1?ie=UTF8&qid=1483221437&sr=8-1&keywords=%E5%BC%B7%E5%8C%96%E5%AD%A6%E7%BF%92">これからの強化学習</a></span></h1>
</div>
<div>
SuttonのReinforcement Learning本が古いので、そこと最新の間を補うための本。かの本とセットで読むのがいいと思う。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<a href="https://www.amazon.co.jp/gp/product/4339024910/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1"><br /></a></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-large" id="productTitle" style="box-sizing: border-box; font-size: 19px !important; line-height: 1.3 !important;"><a href="https://www.amazon.co.jp/gp/product/4339024910/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1">入門 機械学習による異常検知―Rによる実践ガイド</a></span></h1>
</div>
<div>
説明がやばいくらい分かりやすかった。すべての技術書はこのレベルのわかりやすさを心がけてほしい。</div>
<div>
<br /></div>
<div>
<a href="https://www.coursera.org/learn/machine-learning"></a><br />
<a name='more'></a><a href="https://www.coursera.org/learn/machine-learning"><br /></a></div>
<div>
<span style="background-color: white; color: #0000ee; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 19px; font-weight: bold; text-decoration: underline;"><a href="https://www.coursera.org/learn/machine-learning">Machine Learning</a></span></div>
<div>
これは本じゃない。CourseraのMachine Learningのコースである。</div>
<div>
演習がいっぱいあるので、理解に役立つ。本当に基礎なので、これを受講したからと言ってすぐにビジネス応用レベルの技術が身につくわけではないが、機械学習の基礎を身につけるには役に立った。これがただなのはすごい。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-2464345030570076422017-01-01T07:49:00.002+09:002017-01-01T07:49:30.676+09:002016年に読んで何かしら記憶に残ってる本リスト(ノンフィクション編)フィクション・ノンフィクション問わず今年はあまり本を読まなかった。本を読むという行為に少し食傷気味だったのかもしれない。米国に居を移したので意識的に日本語の情報量を減らした影響もあるかもしれない。(代わりに英語の量を増やしているが、残念ながら吸収率が違う)<div>
<br /><div>
その中から、少しでも何かしら心に残っている本をリストアップしておく。なお、読んだ直後のコメントではなく、年末まで自分の中で消化した後でコメントしているので、記憶違いや本書からの飛躍があるかもしれない。まあ気にしない。誰かへのおすすめではなくあくまでも自分メモである。</div>
</div>
<div>
<br /></div>
<div>
<a href="https://www.amazon.co.jp/gp/product/B00JQYYHKK/ref=oh_aui_d_detailpage_o04_?ie=UTF8&psc=1"><br /></a></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<a href="https://www.amazon.co.jp/gp/product/B00JQYYHKK/ref=oh_aui_d_detailpage_o04_?ie=UTF8&psc=1"><span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;">イギリス 繁栄のあとさき (講談社学術文庫)</span> </a></h1>
</div>
<div>
没落していく日本のロールモデルとしてのイギリスを書いた本。イギリスなんて100年以上も没落し続けてるのに、まだ大国なんだから日本も当分は大丈夫だよ、みたいなことを言ってた気がする。こういう観点の考え方もあるのかな、という意味で面白かった</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B01FBYKC0C/ref=oh_aui_d_detailpage_o06_?ie=UTF8&psc=1">VRビジネスの衝撃 「仮想世界」が巨大マネーを生む (NHK出版新書)</a></span></h1>
</div>
<div>
<br /></div>
<div>
VRの情報が満載だった。Informativeでいい本。</div>
<div>
<span class="a-size-extra-large" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><br /></span></div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<a href="https://www.amazon.co.jp/gp/product/B012CHHXAS/ref=oh_aui_d_detailpage_o03_?ie=UTF8&psc=1"><span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;">2020年マンション大崩壊 (文春新書)</span> </a></h1>
</div>
<div>
<br /></div>
<div>
マンション購入の一番のデメリットはそれが他の住民との運命共同体であることだ。共同体の一員と足るような意識の高い住民と住めればいいが、管理費すら払わないような人たちと同じマンションに住んでしまった場合、個人として打てる手はもう何もない。</div>
<div>
<br /></div>
<div>
読んで到達した結論。当分はマンション買わない。一軒家は予算的に変えないから、つまり当分は借家暮らし。どうせ日本の人口は減る一方なので、全体的には不動産価格は低迷していくだろう。人気駅の駅チカ物件とかは相変わらず高値をキープするだろうが、うまく選べばいい物件を広い放題な時代が来る(と予想している)</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B00CZ584Y2/ref=oh_aui_d_detailpage_o04_?ie=UTF8&psc=1">諦める力~勝てないのは努力が足りないからじゃない</a></span></h1>
</div>
<div>
<br /></div>
<div>
アスリートの世界はNO1以外は価値がないので、そうなれないと判断したときに諦めるのが非常に重要である。サラリーマンならばNO2だろうが、NO100だろうが、給与水準が落ちるだけで、その道を諦めることの重要度は相対的に低いが、彼らはそうではない。</div>
<div>
<br /></div>
<div>
素人でも容易に想像ができるように、諦めるといってもそんなに簡単じゃない。事故などで客観的にも納得できるような不可能性を突きつけられれば別であるが、もう少し努力を増やせばまだまだ行けるかも、と思っている状態で諦めるのは、それができるだけで一流と呼べちゃうんじゃないかくらいの超人的なメンタリティを要する。</div>
<div>
<br /></div>
<div>
<a name='more'></a><br /></div>
<div>
<br /></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/No-1%E3%82%A2%E3%83%8A%E3%83%AA%E3%82%B9%E3%83%88%E3%81%8C%E3%81%84%E3%81%A4%E3%82%82%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E6%8A%95%E8%B3%87%E6%8C%87%E6%A8%99%E3%81%AE%E6%9C%AC%E5%BD%93%E3%81%AE%E8%A6%8B%E6%96%B9-%E5%90%89%E9%87%8E%E8%B2%B4%E6%99%B6-ebook/dp/B010SL1IHE/ref=cm_cr_arp_d_product_top?ie=UTF8">No.1アナリストがいつも使っている投資指標の本当の見方</a></span></h1>
</div>
<div>
<br /></div>
<div>
定番の指標といえばPERやPBRなどだが、単にこれがX以下ならOKと言うような見方ではなく、市場がXXXのときはPERを重視し、そうでなくYYYのときは別の指標を重視する、みたいな、そもそも指標をケースバイケースで使い分ける、みたいな話があったと記憶している。この考え方は私の中ですとんと腑に落ちた。</div>
<div>
<br /></div>
<div>
<h1 class="a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: Arial, sans-serif; font-size: 28px; line-height: 1.2; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px; text-rendering: optimizeLegibility;">
<br /></h1>
</div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-71951804401672357632016-12-31T14:23:00.000+09:002016-12-31T14:28:22.831+09:002017年を論じた本まとめ2016年末ということで、2017年を論じてる本を何冊か読んでみた。<br />
<br />
はじめの3つは経済・政治に着眼点をおいて書いた本で、最後のは技術トレンドだけに絞った本。<br />
<br />
ちょっと毛色が違う最後の本だけ除いて、はじめの3つだけ横断的にコメントしてみると、IT技術としてはAI、IOT、VR・AR・MRが来て、世界情勢的には選挙を控えたヨーロッパでポピュリズムの波が来るぞ、という聞き飽きた話をカバーしながらそれぞれちょっとずつ独自色を出している様子。<br />
<br />
<br />
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
</h1>
<br />
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B01N1EUJTS/ref=oh_aui_d_detailpage_o07_?ie=UTF8&psc=1" target="_blank">2017年 日本はこうなる</a></span></h1>
<div>
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">話題は多岐に渡っているが一つ一つの掘り下げが甘い。</span><br />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">表面的な説明と根拠のない展望が記載されているだけという印象が拭えない。</span><br />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">例えば、ロボット開発の項目では、政府が「ロボット新戦略」を打ち出していること、それを受けて自治体が動き出していること、そして公と民が連携する必要があることしか記述されていなく、肩透かしを食らった印象がある。</span><br />
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">VRの項目では、最後に「本稿では紹介しきれないほど、VRは進化を遂げている」と述べられているので、そもそもあまり深く伝えようとする意図が本書にはないのかもしれない。</span><br />
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">日頃から新聞やネットニュースに目を通している方であれば、あえて本書を読んで得るものはないだろう。</span></div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><b><br /></b></span></div>
<div>
<b><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">おすすめ度★☆</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">☆</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">☆</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">☆</span></b><br />
<b><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></b></div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/gp/product/B01N0DFW3N/ref=oh_aui_d_detailpage_o05_?ie=UTF8&psc=1" target="_blank">経済がわかる 論点50 2017</a></span></h1>
<div>
<br /></div>
<div>
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">三菱UFJリサーチ&コンサルティングの「2017年 日本はこうなる」はトレンドをカバーすることを意識しすぎて表面的になっていたのに対し、本書は「論点」に着眼したために、昨今の変化を見据えて本質的に考えなければいけないこと、これから情報をフォローしていかなければいけないことを得るのに最適であった。それぞれ、きちんと資料と出処が引用されていて、論理に信頼感がある。</span><br />
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">2017年末にも、本書の翌年度版をぜひ読みたい</span></div>
</div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></div>
<div>
<b><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">おすすめ度</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span></b><br />
<b><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></b></div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></div>
<div>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<a href="https://www.amazon.co.jp/gp/product/B01MXLKPQ2/ref=oh_aui_d_detailpage_o00_?ie=UTF8&psc=1" target="_blank"><span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;">日本の論点2017~18</span> </a></h1>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
大前研一が論点と考えることについて、更に彼独自の観点から見解が述べられていて非常に読み応えがあった。</div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
類書と類似のテーマは多いが、イタリアから日本が学べることや、台湾と中国の関係、ミャンマーの政治事情などそもそも情報源としても他ではあまり聞いたことがない話が多く、彼の情報網の厚さに唸らされる。</div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
<br /></div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
類書では「経済がわかる 論点50 2017」などもあるが、こちらでは執筆者一覧としてズラリ数十人の名前が記載されているが、それに匹敵する書籍を一人で書き上げられる実力は流石といったところだ。</div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
<br /></div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
日本の論点とあるが、後半ではドイツ・イタリア・中国・台湾・ミャンマーなど国外の論点についても論じられている。</div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
実質「世界の論点」について語られているので、タイトルは無駄に小さくしてしまった印象。</div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
<br />
<br />
<a name='more'></a><br /></div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium;">
<br /></div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium;">
<span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">おすすめ度</span><span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span></div>
<div style="color: black; font-family: "Times New Roman"; font-size: medium; font-weight: 400;">
<span style="color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></div>
</h1>
<h1 class="a-size-large a-spacing-none" id="title" style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 21px !important; font-weight: 400; line-height: 1.3 !important; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;">
<span class="a-size-extra-large" id="ebooksProductTitle" style="box-sizing: border-box; font-size: 28px !important; line-height: 1.2 !important; overflow-wrap: break-word; word-wrap: break-word;"><a href="https://www.amazon.co.jp/dp/B01M9FACO1/ref=pdp_new_dp_review" target="_blank">日経テクノロジー展望2017 世界を変える100の技術</a></span></h1>
</div>
<div>
<br /></div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">昨今で技術といって話題を集めるのはITであるが、それだけにとどまらず土木や医療の最先端技術をまとめて紹介しているのが興味深かった。</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">産業をまたいだ変化の潮流を俯瞰するには良書であろう。</span><br />
<br style="background-color: white; box-sizing: border-box; color: #111111; font-family: "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">少々残念だったのは、最後の対談であろうか。</span><br />
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">日経テクノロジー、ITPro、日経コンストラクション、日経バイオテクの編集長を集めたという豪華メンバーであるが、地位に見合わず話している内容が普通すぎる。この技術を使ったら、未来はこうなるよね、みたいな話をしているが、その程度の話はいくらでも聞いたことがある。ちょっと腕のあるブロガーでももっと面白い洞察を語れただろう。日本企業によくある自分で考えることを放棄した管理職の話を聞いているようだった。</span></div>
<div>
<span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;"><br /></span></div>
<br />
<b><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">おすすめ度</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">★☆</span><span style="background-color: white; color: #111111; font-family: "hiragino kaku gothic pro w3" , "hiragino kaku gothic pron" , "meiryo" , sans-serif; font-size: 13px;">☆</span></b><br />
<br />
<br />kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-8280653276413343192016-12-26T17:41:00.000+09:002017-01-01T08:56:03.020+09:00Githubでフォーク元の修正を取り込む手順メモ1. フォーク元を追加<br />
<pre style="background-color: #f7f7f7; border-radius: 3px; border: 0px; box-sizing: inherit; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.8em; line-height: 1.2; overflow-x: auto; padding: 0.6em 1.2em; word-break: break-all; word-wrap: normal;">git remote add upstream git://github.com/<username>/<reponame>.git</pre>
2. 修正をフォーク先に取り込む<br />
<pre style="background-color: #f7f7f7; border-radius: 3px; border: 0px; box-sizing: inherit; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.8em; line-height: 1.2; overflow-x: auto; padding: 0.6em 1.2em; word-break: break-all; word-wrap: normal;">git fetch upstream</pre>
<pre style="background-color: #f7f7f7; border-radius: 3px; border: 0px; box-sizing: inherit; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.8em; line-height: 1.2; overflow-x: auto; padding: 0.6em 1.2em; word-break: break-all; word-wrap: normal;">git merge upstream/master</pre>
<br />
3. 修正をfortした自分のレポジトリに反映<br />
<pre style="background-color: #f7f7f7; border-radius: 3px; border: 0px; box-sizing: inherit; color: #333333; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.8em; line-height: 1.2; overflow-x: auto; padding: 0.6em 1.2em; word-break: break-all; word-wrap: normal;">git push</pre>
<br />
これ、githubのweb上でできてほしいんだけどな。<br />
なんでremoteとかも自動で設定されてないのか(そういうもんなんだろうか)<br />
<br />
<br />
<br />
参考文献<br />
http://rcmdnk.github.io/blog/2014/06/09/compouter-git/kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-90526894422281239722016-07-20T08:26:00.000+09:002016-07-20T08:26:28.786+09:00RestEasyを理解するためのサンプルコード集RestEasyはJBossにバンドルされているJAX-RS実装。<br />
<div>
日本語・英語問わず、あまり親切な情報がなかったのでサンプルとして纏めておく。</div>
<div>
<br /></div>
<div>
JBOSS系は公式ドキュメントがわかりづらい上に、Updateがきちんとされてなかったり、いつもながらとっつきにくい。Glassfish実装のJerseyの方がドキュメントが親切だし、mavenのarchetypeもある。選べるのならばJerseyの方がいいだろう。</div>
<div>
<br /></div>
<div>
<div>
<br /></div>
<h3>
RestEasySample1</h3>
<div>
まず単純なHelloworld。これが動けばとりあえず設定系は成功しているとみなして良いはず。</div>
<div>
個人的にはweb.xmlに何も書かなくていいというのに嵌った。Jerseyでは確かここに定義を書かなければ行けなかったと記憶している。</div>
<div>
<br /></div>
<h3>
RestEasySample2</h3>
<div>
GETとPOSTを使ったサンプルを少し。</div>
<div>
<br /></div>
<h3>
RestEasySample3</h3>
<div>
JAXBと組み合わせた時のサンプルを少し。</div>
<div>
メソッドの戻り値にJAXBのAnnotationをつけたクラスを指定すれば、勝手にxmlに変換してhttpの戻り値としてくれるのはちょっと感動した。</div>
<div>
<br /></div>
<h3>
RestEasySample4</h3>
<div>
Basic認証を使ったサンプルを少し。</div>
<div>
web.xmlでBasic認証を設定すると、JAX-RSがその先でEJBを呼び出したとしても、認証が通った状態になっている。JBOSS全体で認証をパスした扱いになっているのかも(未確認)</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-32540007530369733662016-06-24T07:27:00.000+09:002016-06-24T07:27:02.486+09:00Resteasyメモorg.jboss.resteasy.pl<br />
ugins.providers.jaxb.JAXBUnmarshalException: Could not find JAXBContextFinder for media type: application/x-www-form-urlencoded;charset="UTF-8"<br />
<br />
content-typeが受け付けてもらえてない様子。<br />
jqueryでcontent-typeを下記のように設定する。<br />
<br />
<pre style="background-color: white; font-family: "MS Gothic"; font-size: 9pt;">$.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");
}
});</pre>
<br />
<br />kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-49374949436701455952016-03-29T02:34:00.001+09:002016-03-29T02:34:36.339+09:00Resteasy memo<br />
<h2>
動くサンプルコード</h2>
https://github.com/resteasy/Resteasy/tree/master/jaxrs/examples/oreilly-workbook-as7<br />
<br />
ネット上に転がってるサンプルコードは、バージョンが合わないせいか、動かないものが多かった。<br />
<a href="https://docs.jboss.org/resteasy/docs/3.0.9.Final/userguide/html_single/" target="_blank">JBossの公式サイト</a>をみて、コードを書いてみてもなんだかイマイチよくわからなくてdeployでエラーが出てばかりだった。とりあえず上のgithubコードを使うと動くものが手に入る。<br />
<br />
なお、とりあえずmvn installしてみるといろいろとエラーが出る。<br />
<br />
<blockquote class="tr_bq">
[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 '{<br />[ERROR] "operation" => "read-children-names",<br />[ERROR] "child-type" => "deployment"<br />[ERROR] }': java.net.ConnectException: JBAS012144: Could not connect to remote://localhost:9999. The connection timed out</blockquote>
<br />
JBossがビルド環境で動いてないのが原因かと推測するが、とりあえずpackageフェーズは通過しているのでwarはできている。動くwarが欲しいだけであれば無視して良い。<br />
またはmvn installではなくmvn packageとすれば、エラーは出なくなる。(もちろん本質的には何ら解決してないが)<br />
<br />
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-56783608642315516752016-02-18T03:47:00.001+09:002016-02-18T03:49:34.133+09:00VMWare PlayerでIPv6通信VMWare Playerで動かした仮想マシン上でIPv6通信を行った時のメモ。<br />
<br />
<h3>
VMWareのバージョン</h3>
7.1.0 build-2496824<br />
<br />
<h3>
仮想マシン1</h3>
<div>
Windows 7</div>
<div>
<br /></div>
<h3>
仮想マシン2</h3>
<div>
<div>
Red Hat Enterprise Linux Server release 6.0 (Santiago)</div>
</div>
<div>
<br /></div>
<h3>
やったこと</h3>
<div>
<ul>
<li>仮想マシン1,2のping6</li>
<li>ホスト(Windows7)と仮想マシン1のping6</li>
<li>ホスト(Windows7)と仮想マシン2のping6</li>
</ul>
</div>
<div>
<br /></div>
<h3>
結果</h3>
<div>
<ul>
<li>仮想マシン1 => 2 へのping6 成功</li>
<li>仮想マシン2 => 1 へのping6 成功</li>
<li>ホスト=>仮想マシン1へのping6 成功</li>
<li>仮想マシン1=>ホストへのping6 <b>失敗</b></li>
<li>ホスト=>仮想マシン2へのping6 成功</li>
<li>仮想マシン2=>ホストへのping6 <b>失敗</b></li>
</ul>
</div>
<div>
<div>
<br />
何故かよくわからないが、仮想マシン=>ホストへのping6はUnreachableだった。</div>
<div>
Wiresharkで見ていたところ、仮想マシンからNeighbor solicitationsが発行された後に</div>
<div>
ホストから応答があるはずのNeighbor advertisementsが出ていなかった。</div>
<div>
Vmware Playerのせいなのか、設定が正しくないのかは不明。</div>
</div>
<div>
<br />
なお、IPv4でのpingの場合は、上記の全経路で通信に成功した。</div>
<h3>
重要そうな設定</h3>
<div>
ネットワークアダプタの設定をHost-onlyにした時のみ、ping6が成功した。</div>
<div>
BridgedやNATではダメだった。</div>
<div>
<br /></div>
<div>
仮想マシン上のFirewallは切っておいた。ホストはOFFにする権限がなかったので切っていない。</div>
<div>
仮想マシン => ホストのping6が通らないのはこれが原因かもしれない。ただし仮想マシン間のping6は双方向で通るので、イマイチよくわからない。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-13113900532649630272016-02-03T08:57:00.000+09:002016-02-04T02:03:50.477+09:00Chainerを使ったMNIST Handwitten Digit ClassifierChainerを使って手書き数字の認識器を作ってみた。<br />
<a href="https://www.blogger.com/goog_1598918819"><br /></a>
<a href="http://quiet-ravine-57612.herokuapp.com/hw" rel="nofollow" target="_blank">MNIST Handwritten digit classifier</a><br />
<br />
<br />
Herokuで動かしているが、学習自体は別の環境で行った。<br />
ChanierはモデルのSerialize機能があるので、それをHerokuにデプロイして利用している。<br />
<br />
マシンリソースがあまりないので、エポック数とか削ってしまったが、まあまあきちんと認識してくれてるような気がする。<br />
<br />
ソースコードは<a href="https://github.com/kentan/Handwritten-Digit-Classifier-With-Chainer" target="_blank">Github</a>を参照<br />
<br />
<div>
html部分はこちらの<a href="https://github.com/ginrou/handwritten_classifier" rel="nofollow" target="_blank">ソースコード</a>を流用させていただきました。<br />
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0tag:blogger.com,1999:blog-1191517844941687860.post-89543647704574926692016-02-03T08:56:00.000+09:002016-02-04T06:22:46.343+09:00HerokuでChainerを動かそうとして成功したときのメモChainerをHerokuで動かして成功したのでそのメモ。<br />
<br />
<br />
Google App Engineでは、GAEにプリインストールされているnumpyのバージョンや.soファイルを利用したpythonライブラリのデプロイ制限などのために上手く動かなかったが、Herokuでは無事に動いた。<br />
<br />
<h3>
1. Chainerのバージョンは1.5.1以降で</h3>
Herokuでは基本的にpipでインストールできるものは、何でも利用できるようでGoogle App Engineよりも自由度が高い。<br />
<br />
ただし、Herokuの環境ではlibhdf5-devなどのh5pyのインストールに必要な開発モジュールが入ってないようで、h5pyだけはインストールできなかった。<br />
<br />
幸運なことに<a href="https://github.com/pfnet/chainer/commit/1bb72f0030d1fb30c285be329e563277f84eb5fb" rel="nofollow" target="_blank">Chainer 1.5.1からはh5pyがオプショナル</a>になっていたようで、これは大きな問題にならなかった。<br />
<br />
githubを見ても特に変更の理由はわからないが、もしこのような事態を想定して変更してたのならば、開発者たちの慧眼は賞賛ものである。<br />
<br />
<br />
<h3>
2. その他の環境</h3>
下記のバージョンを利用。<br />
<pre class="prettyprint devsite-code-highlight" style="background-color: #fafafa; border: 1px solid rgb(221, 221, 221); font-family: 'droid sans mono', monospace; font-size: 14px; font-stretch: normal; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 6px 10px; position: relative;"><span style="white-space: normal;">
Flask==0.10.1</span>
<span style="white-space: normal;">
numpy==1.9.2</span>
<span style="white-space: normal;">
six ==1.9.0</span>
<span style="white-space: normal;">
chainer==1.6.0</span>
</pre>
<div>
<br /></div>
<div>
<span style="font-family: "times new roman";"><span style="white-space: normal;"><br /></span></span></div>
またデフォルトでは2系のpythonを3系に変更するためにruntime.txtに下記のように書く。なお、Chainerは2.7にも対応しているので、2系のままでもたぶん動くが未検証。<br />
<br />
<pre class="prettyprint devsite-code-highlight" style="background-color: #fafafa; border: 1px solid rgb(221, 221, 221); font-stretch: normal; margin-bottom: 10px; margin-top: 10px; overflow: auto; padding: 6px 10px; position: relative;"><span style="font-family: "times new roman";"><span style="white-space: normal;">python-3.4.0</span></span></pre>
<br />
<h3>
3. ソースコード</h3>
<div>
<a href="https://github.com/kentan/Handwritten-Digit-Classifier-With-Chainer" target="_blank">Github参照。</a><br />
動くものはこちら<a href="http://kentandx.blogspot.com/2016/02/chainernmist-handwitten-digit-classifier.html" rel="nofollow" target="_blank">Chainerを使ったMNIST Handwitten Digit Classifier</a></div>
<h3>
</h3>
<div>
<br /></div>
<div>
<br /></div>
kentanhttp://www.blogger.com/profile/06594743927409796715noreply@blogger.com0