紙の本の話
『Amazon Web Services 基礎からのネットワーク&サーバー構築』を読んだ
自分は基本的にアプリケーションエンジニアで、いわゆるインフラまわりはそんなに強くないので買ってみた。
Amazon Web Services 基礎からのネットワーク&サーバー構築
- 作者: 玉川憲,片山暁雄,今井雄太
- 出版社/メーカー: 日経BP社
- 発売日: 2014/07/16
- メディア: 単行本
- この商品を含むブログ (3件) を見る
結果的に言って、書かれていることで知らないことはなかったが、久しぶりにAWSを触ってサーバー構築などしてちょっと楽しかったなあと思う。
この本は、アプリケーションエンジニアでインフラ構築などをしたことのない人を対象に、ネットワークやサーバー構築のごくごく初歩的な部分をハンズオンで学ぶことのできる構成になっている。
対象読者としては、アプリケーションエンジニアとして2,3年働いたが、インフラに関わったことがなく、アプリケーションコードを書くこと以外はよく知らない、みたいな人か。そういう人にとってはいい取っ掛かりになる本だと思う。
図を豊富に使ってサーバー構築に苦手意識がある人をフォローしようという意識が感じられるのは好ポイント。
一方でAWSのサインアップの仕方は書いてなかったり、Linux自体の使い方については全く説明がないので、完全な初心者は途中で詰まってしまうだろうなあと思う。あくまである程度Linuxを使ったことがあって、基本的な操作には戸惑わないことが前提になっているので注意。
そういう意味でも、やはり「アプリケーションエンジニアとして2,3年働いたが、インフラに関わったことがなく、アプリケーションコードを書くこと以外はよく知らない」みたいな人にハマる本だと思う。
自分がそういう人だと思うなら、買ってみてもいいのではないでしょうか。
Amazon Web Services 基礎からのネットワーク&サーバー構築
- 作者: 玉川憲,片山暁雄,今井雄太
- 出版社/メーカー: 日経BP社
- 発売日: 2014/07/16
- メディア: 単行本
- この商品を含むブログ (3件) を見る
ちなみにリーダブルコードも今更だけど読んだ。
本のサイズも内容もコンパクトに過不足なくまとまっていて読みやすい。携帯もしやすい。
翻訳文も軽妙で楽しい。時々読み返すにもいい本だと思う。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (117件) を見る
こういうテックコラムみたいな本、最近見ないなあ。
Joel on Softwareとか、久しぶりに読みたくなった。
- 作者: Joel Spolsky,青木靖
- 出版社/メーカー: オーム社
- 発売日: 2005/12
- メディア: 単行本
- 購入: 18人 クリック: 371回
- この商品を含むブログ (457件) を見る
- 作者: Joel Spolsky,青木靖
- 出版社/メーカー: 翔泳社
- 発売日: 2009/04/09
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 166回
- この商品を含むブログ (95件) を見る
コラムだとこのへんも面白かったなあ。(懐かしい。。)
Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方
- 作者: Eric Sink,エリック・シンク,青木靖
- 出版社/メーカー: 翔泳社
- 発売日: 2008/09/11
- メディア: 単行本(ソフトカバー)
- 購入: 17人 クリック: 182回
- この商品を含むブログ (88件) を見る
- 作者: Joel Spolsky,青木靖
- 出版社/メーカー: 翔泳社
- 発売日: 2008/02/21
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 201回
- この商品を含むブログ (114件) を見る
- 作者: Mike Gancarz,芳尾桂
- 出版社/メーカー: オーム社
- 発売日: 2001/02
- メディア: 単行本
- 購入: 40人 クリック: 498回
- この商品を含むブログ (137件) を見る
これも定番ですな。。(これは嫌いな人は嫌いだよね。傲慢で差別的だから)
- 作者: ポールグレアム,Paul Graham,川合史朗
- 出版社/メーカー: オーム社
- 発売日: 2005/01
- メディア: 単行本
- 購入: 109人 クリック: 4,884回
- この商品を含むブログ (594件) を見る
『Java最強リファレンス』をいただきました
java最強リファレンスも読みたいなー |д゚)チラッ
— Takafumi Ikeda (@ikeike443) 2014, 11月 11
先日わざとらしく何気なく上記のようにTweetしたら、著者の @yuichielectric さんにご献本いただきました。ありがとうございます!
Java最強リファレンスいただきました! @yuichielectric さん、ありがとうございます! pic.twitter.com/IueGU11rtL
— Takafumi Ikeda (@ikeike443) 2014, 11月 13
読ませていただきましたのでご紹介をば。
- 作者: 田中裕一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/10/27
- メディア: 大型本
- この商品を含むブログ (1件) を見る
この本は名前の通りJavaのリファレンスです。通読するというよりは、用途に応じて参照するのが正しいでしょう。
この本が素晴らしいのは、基本的にすべての項をJava7, 8といった最近のバージョンをベースにして解説されているところです。*1
大変な労作です。
ラムダ式やメソッド参照、Optionalについても "Javaの基礎" という章で解説していますし、Streamについても一章割いてきちんと解説しています。
Fileの読み書きもJava8のStream APIを使った書き方を中心に紹介しているところが大変好印象で、新しいJavaの効率的な書き方がよくわかります。*2
Stream API の後ろで使われている Fork/Joinフレームワークの解説や、Fork/Join 自体の使い方にも触れているところもよいです。ScriptEngine(nashornですね)にもきちんと言及していて、いいリファレンスだと思います。
全体的に標準パッケージのみを解説の対象としているのも潔く、読みやすくなっていると思います。
惜しいのは Servlet にも触れているところかなあと思います。Servlet は JavaEEですし標準パッケージとは言いがたく、若干蛇足かなと思いました。Web 開発編みたいなものを別途出したほうがいいんじゃないかと思ったけど、Servletを入れないと売れない、っていう判断があったんだろうなあと邪推しました。。
Jettyのようなサードパーティのライブラリ説明をするのに、Mavenのようなビルドシステムの説明がないのは片手落ちな気がしましたし、セッションの説明についても http はステートレスだって書いてるそばからサンプルコードの中でsession.sethogeしており、セッションの永続化をどうするかについて特に説明がないのがちょっと気になりはしました。*3
ですが、気になったのはそこくらいで、Javaの包括的なリファレンスで、最新のJavaをベースに丁寧な解説があるのはとてもとてもポイントが高く、Java開発者であれば必携の書であると思います!
僕も現場の若手に薦めようと思っています。
- 作者: 田中裕一
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/10/27
- メディア: 大型本
- この商品を含むブログ (1件) を見る
@yuichielectric さん、執筆お疲れ様でした。そして出版おめでとうございます!
auの誰でも割自動更新には気をつけよう
黙って更新されて、解除料を1万円以上取られます。
2年縛りが解けたあと、ぼやぼやしてるとまた2年縛りになるのでご注意を。
カスタマーセンターに電話して自動更新を解除することはできるっぽいので、早めに確認しておいたほうがいいでしょう。
合法のようですが、黙って更新するのは心象としてはとても悪いですね。
KDDIが逆転勝訴=解約金条項は適法、携帯割引 2年縛り : キジトラ速報
Jenkins + Maven3.2.1 で IllegalAccessError on AbstractMapBasedMultimap
メモ。時間があるときに調べる。
Maven3.2.1とJenkins1.581のCoreとで依存しているGuavaのバージョンが違っていることが遠因になっていくつかのプラグインが動かなくなっている。(下記参照)
[#JENKINS-22252] Maven 3.2.1: IllegalAccessError on AbstractMapBasedMultimap - Jenkins JIRA
JenkinsでMavenプロジェクトを作って静的解析をしていて下記のようなエラーが出ていたらこの問題に該当すると思って良さそう。PMD, CheckStyle, FindBugs全て同じ。静的解析以外でも問題が起きそうだけど、今のところ聞いてない。
java.io.IOException: Remote call on channel failed at hudson.remoting.Channel.call(Channel.java:748) at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:168) at com.sun.proxy.$Proxy7.execute(Unknown Source) at hudson.maven.MavenBuildProxy$Filter.execute(MavenBuildProxy.java:206) at hudson.plugins.analysis.core.HealthAwareReporter.registerResultsOnMaster(HealthAwareReporter.java:325) at hudson.plugins.analysis.core.HealthAwareReporter.postExecute(HealthAwareReporter.java:316) at hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:628) at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:610) at hudson.maven.Maven3Builder$JenkinsEventSpy.onEvent(Maven3Builder.java:306) ... Caused by: java.lang.LinkageError: Failed to load com.google.common.collect.AbstractMapBasedMultimap at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:326) at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:236) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:113) ... Caused by: java.lang.IllegalAccessError: class com.google.common.collect.AbstractMapBasedMultimap cannot access its superclass com.google.common.collect.AbstractMultimap at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.lang.ClassLoader.defineClass(ClassLoader.java:643) at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:322) ... 39 more
Workaroundとしては、Mavenプロジェクトをやめてフリースタイルプロジェクトで作るか、Mavenのバージョンを3.0.5くらいまで落とせば一応動く。細かいバージョンの組み合わせは試してないが、まあ3.0.5まで落とせば大丈夫っぽい、という程度の理解をしている。
これ結構直すのは面倒そうだなあ。JenkinsのGuavaバージョンをあげるのか、各プラグイン側でWorkaroundな修正を入れるのか。。
『プロフェッショナルのための 実践Heroku入門』を読んだ
もう2週間も経ってしまったが、RubyKaigi2014に参加してきました。Rubyは全然書いたことないのですが、最近Ruby絡みの仕事をすることになったので行ってみた感じです。
そこでHerokuの相澤さんに買わされたおすすめされた本がこちらです。
これがその時(買った時)のTweet。おっさん二人でむさいですな。。
.@ikeike443 さんの本も宣伝します! #rubyfriends #rubykaigi #herokujp pic.twitter.com/kCumpbhWdf
— Ayumu AIZAWA (@ayumin) September 18, 2014
相澤さんは律儀に僕の本の宣伝もしてくれました! ありがとうございます!!
Herokuはアプリの実行環境を提供しますが、効果的に活用するにはHeroku本とチーム開発のノウハウが重要です。#herokujp #rubykaigi http://t.co/HZEe9X5X7C
— Ayumu AIZAWA (@ayumin) 2014, 9月 18
さてこの『プロフェッショナルのための 実践Heroku入門』ですが、クラウドの利用はすでにしていて、なんだったら他のPaaSも使ったことあるけど、Herokuはちょっとチュートリアルを触ったくらいで細かいことはわかりません、みたいな人にオススメです。Herokuの採用を検討している人も読むといいでしょう。
Herokuをつかって実際にサービスを立ち上げる際に気をつけるべき点や、よく詰まる点などが解説されています。
例えばPaaSならではのタイムアウト制限についても、単純なレスポンスのタイムアウト制限の話から、Herokuの仕組みを知っていないと理解しがたいSlugコンパイル時間の制限、Slugの容量制限の話まで、Herokuの仕組みについて触れながらわかりやすく説明してくれます。
実運用に入れば必ず気になる、カスタムドメインの設定の仕方やSSL導入の際の注意点、Heroku Postgresを使う際のポイントも解説されています。
また7章では実際にHerokuのテクニカルサポートをされている織田さんが、ありがちなトラブルについて具体例を上げながら解説してくれていて役に立ちます。
最後の9章はHeroku創業者の言葉であるThe Twelve-Factor Appの全訳です。全訳はWebでも読めますが、改めてこの本につけていることに大きなメッセージを感じます。
これはHerokuを使う使わないに限らず、モダンなソフトウェアが持っているべきものだと思います。熟読しましょう。
僕自身は前職ではHerokuもよく使っていましたし、Herokuを使って立ち上げたサービスとしては日本では結構早い時期に属するものに関わってたなあと今思い出しました。(更にいうとPlay2+Scalaだったしね)
転職してからはHerokuはじめいわゆるXaaSなものとは全く疎遠になりましたが、また触れる機会を持ちたいものです。。
最後に僕の本のアフィも貼っておきます。一緒に読むと効果的ですよ!