タイトル
まつもとゆきひろ コードの未来
著者
まつもと ゆきひろ
出版社
日経BP社
Amazonで購入する

本書は日経Linuxで2009年6月号から2012年6月号まで連載されていた「まつもとゆきひろ 技術を斬る」に加筆・修正を加えたものです。2009年からということで古い技術もあるのでは?と思われるかもしれませんが、さすがまつもとさん!きちんと未来を見据えたテーマでかかれていて、すごく参考になりました。

本書は読み物の色がつよく、言語の過去・未来や新しい言語(GoDartCoffeeScriptLua)の言語作成者ならではの視点での解説、クラウド時代のC10K問題やスケーラビリティの話、ビッグデータ時代の NoSQL の扱い方などをまつもとさん視点で解説しています。

実際にプログラミングをやっている人であれば、ニヤニヤしながら読めることまちがいなしです。最近の技術動向をさくっと知るというのにも良いと思います。僕もとても楽しく面白く読むことが出来ました。

新人教育にいかがですか?

タイトル
Webエンジニアのための データベース技術[実践]入門
著者
松信 嘉範 (著)
出版社
技術評論社
Amazonで購入する

「データベース技術実践入門」とタイトルにはありますが、この本は入門ではなく「おぼえがき」のようなものだと読んで感じました。データベースの設計を行う際の注意点や、こういう点は押さえておくべきということを広く確認できる構成になっていたからです。

例えば、インデックスの種類を挙げ、データ数が増えてきた際にどのようにインデックスが効いてくるか、逆に効かなくなってくるかをまとめてあったり、データベースが吐き出すログにはどのようなものがあり、障害時の復旧手順のなかでどのログがどのような役割をになっていたりするかをまとめてあったりします。

また、最近のストレージ動向にも目を向け、データベースのパフォーマンスを上げるためにはどうすればよいかを解説していたりもします。

本書はつまるところ、「データベースを自分で構築し、(大規模なデータを扱う)サービスと絡めて運用する人向け」の本だと思います。「Webエンジニアのための」と書いてありますが、全てのエンジニアではなく、昨今話題のスマートフォン向けソーシャルゲームや、大量ログを扱わなければならないようなサービスを運営する中小規模の開発会社の開発者向けです。

DBの設計や、エンタープライズシステム向けのデータベースを扱う際に読むような本ではないですが、サラッと読んで知識を蓄える感じで読むのにステキなまとめられかたをしていると思います。

ちなみに、本書で扱っているデータベースは MySQL になります。

タイトル
オブジェクト指向JavaScript
著者
Stoyan Stefanov (著), 水野貴明 (翻訳), 渋川よしき (翻訳)
出版社
アスキー・メディアワークス
Amazonで購入する

本書は、JavaScript を理解するためのものです。JavaScript はプロトタイプベースの言語で、クラスがなかったり、プロパティのアクセス修飾子がなかったり、継承の仕方が特別だったりします。

JavaScript を理解するには、JavaScript は全てがオブジェクトであることを覚えておく必要があります。本書は、こう言った、JavaScript が他のオブジェクト指向言語と違う点を整理し、JavaScript ではこう書くというのを丁寧に解説してくれています。

「JavaScript はブラウザ上で動く小さな言語」という認識だった昔とは、昨今では JavaScript の扱いは変わりました。サーバサイドでも JavaScript を動かしたり、スマートフォンの開発に JavaScript を使ったりと、JavaScript が使える舞台は広がっています。

JavaScript をもう一度ちゃんと理解したいという人に、本書はおすすめです。

Rails のプラグイン carrierwave と fog を使って、Amazon S3 をストレージとして使う方法のメモです。

使用環境

  • Rails 3.2.1
  • carrierwave 0.6.0.beta
  • fog 1.1.2

carrierwave のインストール

Terminal

$
gem install carrierwave

config の書き方

initializers に carrierwave.rb というファイルを作成し、以下のような設定を書きます。

initializers/carrierwave.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- encoding: utf-8 -*-

unless Rails.env.test?
  CarrierWave.configure do |config|
    config.cache_dir = "#{Rails.root}/tmp/uploads"
    config.storage                          = :fog
    config.fog_credentials                  = {
        :provider              => 'AWS',
        :aws_access_key_id     => ENV["AWS_S3_KEY_ID"],
        :aws_secret_access_key => ENV["AWS_S3_SECRET_KEY"]
    }
    config.fog_directory                    = ENV["AWS_S3_BUCKET"]
    config.fog_public                       = false
    config.fog_authenticated_url_expiration = 60
  end
else
  CarrierWave.configure do |config|
    config.storage = :file
  end
end

ENV[“AWS_S3_KEY_ID”] にはユーザアクセスID、ENV[“AWS_S3_SECRET_KEY”] にはシークレットアクセスキー、ENV[“AWS_S3_BUCKET”] にはバケット名をそれぞれ設定する。

各値は、Amazon S3 の設定画面で確認できる。

この設定を行い、carrierwave で Uploader を作成して、ファイルをアップロードすると、S3 にファイルを置くことができる。また、S3 上のファイルの URL には、60秒のタイムアウト設定を掛けており、アプリからのアクセスでのみ参照可能なURLが表示されるようになる。(config.fog_public = false、config.fog_authenticated_url_expiration = 60 の設定)

タイトル
テスト駆動JavaScript
著者
Christian Johansen (著), 長尾高弘 (翻訳)
出版社
アスキー・メディアワークス
Amazonで購入する

JavaScript のテストに関して書かれた、体系的な本がやっと出た!という感じにまとめられています。

本書では、JavaScript にスポットを当て、テストしやすい JavaScript のコードとはどんなものか、実際にテスト駆動で JavaScript のコードを書くにはどういう手順で進めていけばよいかについて書かれています。

本書は大まかに、次の4部に分けて解説されています。

  • 第1部: テスト駆動開発
  • 第2部: プログラマのためのJavaScript
  • 第3部: JavaScriptテスト駆動開発の実際
  • 第4部: テストのパターン

第1部では、一般的な自動テストやテスト駆動開発(TDD)の概念を説明しながら、JavaScript 用の単体テストフレームワークを紹介しています。

第2部では、JavaScript という言語をおさらいしながら、大きな特徴である関数クロージャプロトタイプ継承ECMAScript 第五版控えめなJavaScript機能検出(クロスプラットフォーム)について説明を掘り下げています。

第3部では、実際に小さなプロジェクトを開発しながらテスト駆動による JavaScript の開発を体験できるようになっています。AjaxComet によるデータストリーミング、Node.js によるサーバサイド JavaScript、これらを使ったチャットプログラムの作成を体験できるようになっています。

第4部では、モックスタブといったいわゆる単体テストのテクニックや、優れた単体テストを書くためのテスト名の付け方や、振る舞いのテストを書くときにはどう書いたらよいか、わかりやすい単体テストコードを書くためのテクニックが説明されています。

テスト駆動JavaScript』の名にふさわしい内容で、他の言語でも共通する単体テストのお作法も学べる本書は、TDD難民の人にオススメです。

携帯向けの GREE ソーシャルアプリ『のほほんビレッジ〜みんなのカフェ〜』を遊んでくださっている皆様、本当にありがとうございます。

のほほんビレッジは、株式会社Edivaさんと共同で製作したゲームです。

公式コミュニティの方にもあげられていますが、皆様からの要望はすべて目を通しています。

要望の中から少しずつですがプログラムを実装して、今後も皆様にお届けしていきたいと思います。

致命的なバグに関しては出来る限り早く、要望の実装は定期メンテナンスで導入という感じで運営していますので、末永くお付き合い下さい。

今回の定期メンテナンスで導入されなかった機能も、次回のメンテナンスには導入されるかも!?というような楽しみ方もしていただけると。。。

のほほんビレッジ〜みんなのカフェ〜(携帯用アプリトップ)

携帯向けの GREE ソーシャルアプリ『のほほんビレッジ〜みんなのカフェ〜』をリリースしました。

このゲームは、のほほん王国を舞台に、自分のカフェを作って仲間を作って生産して調理してデコってクエストしてっていう、 とにかくやれることを盛り込みすぎてしまった、そんなゲームです。

のほほんビレッジは、株式会社Edivaさんと共同で製作したゲームです。

ゲームの内容は遊んでみてほしいのですが、ゲームの裏側の宣伝を一つ。

このゲームは、よくある Flash ゲームではなく Web のまんまつくっています(Rails を使ってつくりました)。

他のゲームとの差別化として、クエストの概念を強力に取り入れているのと、memcached をキャッシュとメッセージング(全体メッセージの配信)に使っているところをちょっと強調したいところです。

まぁ、初めてソーシャルゲームを作りましたが、まだまだ納得していないところもあり、いろいろな経験をさせてもらったアプリになっているので、興味があれば遊んでみてください。

のほほんビレッジ〜みんなのカフェ〜(携帯用アプリトップ)

タイトル
7つの言語 7つの世界
著者
Bruce A. Tate (著), まつもとゆきひろ (監訳), 田和 勝 (翻訳)
出版社
オーム社
Amazonで購入する

本書は、はじめてプログラミングを知ったときに楽しさを思い出させてくれるものです。紹介されているプログラミング言語は7つ。

  • Ruby
  • Io
  • Prolog
  • Scala
  • Erlang
  • Clojure
  • Haskell

単なる言語紹介の本ではなく、言語を知る本です。

本書を読むことで、各言語の長所、短所、原理、思想を知ることができます。プログラマとして一皮向けたい人に、おすすめです。

禅の指導者は、数学ができるようになりたければラテン語を勉強せよと言うだろう。プログラミングでも同じだ。オブジェクト指向プログラミングの本質を深く理解するには、論理プログラミングや関数型プログラミング(FP)を勉強する必要がある。関数型プログラミングに上達したければ、アセンブラを勉強する必要がある。

本書序文より

プログラミングとは結局、理解することであり、理解できるかどうかはどれだけアイデアの引き出しがあるかにかかっている。したがって、新しい言語を直接体験することは、プログラミングが何たるかをより深く理解するために欠かせない。

本書序文より
タイトル
cocos2dで作る iPhone&iPadゲームプログラミング
著者
Steffen Itterheim (著), 畑 圭輔 (監修), 坂本 一樹 (監修), 加藤 寛人 (監修), 高丘 知央 (監修), 株式会社 クイープ (翻訳)
出版社
インプレスジャパン
Amazonで購入する

待望の、cocos2d 詳細解説本がでました! 本書を読めば、cocos2d のすべてが分かると言ってもいいんじゃないかというぐらい幅広く詳しく cocos2d のことが書いてあります。

本書は、cocos2d を使ってゲームアプリをつくりながら、cocos2d の機能や cocos2d を使ってゲームアプリを開発する際の手順、こういうふうに設計したら cocos2d ではうまくいくというような事を解説しています。

cocos2d は Objective-C で書かれていて、ゲームアプリも Objective-C を使って作ります。cocos2d が内部に OpenGL-ES を隠してくれているので、すごく簡単に 2D ゲームを作ることができるようになります。

iPhone 用のゲームアプリを作ってみたいがどうやって作ればいいのかわからない人、どのフレームワークを使えばいいか迷っている人に、特におすすめです。

僕の持っている版は cocos2d のバージョン 0.99.5 が解説されています。

cocos2d for iPhone