本を読む

読書やコンピュータなどに関するメモ

「PyCon mini JP」に行ってきた

 Pythonのイベント「PyCon mini JP」に行ってきました。…いや昼からでしたが。思ったよりいろいろなジャンルの話があって楽しく聞いていました。

 あと、最後のじゃんけん大会で、オライリーのアナライジング・マルウェアのTシャツをゲットしてしまいました。ありがとうございました。

 以下、メモほぼそのまま。

テンプレートエンジンの高速化と失敗談について

  • 文字列の連結を速く
    • extendで足してjoinが定番
    • いろいろな方法をためしたが、結局これが一番
  • Tenjinのコード埋め込み
    • インデントフリー
    • 複数行を1つのメソッドで出力
      • この程度のこともやってないテンプレートエンジンも多い
      • 40%高速化
    • append
      • 50%高速化
      • メソッド呼び出しのコストが高い
  • ここまでで1万ページ/sの性能
    • ここからが苦難
  • リストに文字列以外のものが入っているとjoinでエラーに
    • str()のオーバーヘッド
    • str()をビルトイン化してみる
    • str()→%演算子
  • Noneを空文字に変換
    • 性能低下
  • エスケープ処理
    • 性能低下
  • 文字列連結はボトルネックではなかった
    • ヘルパー関数がボトルネックだった
    • ヘルパー関数をCに
    • ヘルパー関数の呼び出しを削除
      • これから実装
  • Google「ボトルネックは十中八九テンプレートエンジン」
    • Djangoのテンプレートエンジン
    • Tenjinに置きかえてみた人がいた
      • 30%高速化
  • Rails 1.2
    • ビューが遅い
      • 実はヘルパー関数が遅い
    • ヘルパー関数を一掃
      • 2倍高速に
  • テンプレートエンジンの高速化だけではなくビュー層の高速化
    • ヘルパー関数、キャッシュ
  • 「文字列リテラルをヘルパーに渡すコード」に展開される部分を、展開時にヘルパー展開済みの文字列に展開
  • 各言語のTenjin
    • Perlだけやたら高速
    • 「テンプレートエンジン最強の言語はPerlです」w
    • 文字列連結専用の演算子があり、専用のバイトコードになっている
      • 文字列を愚直に演算子で連結するのがはるかに高速(4倍)
  • 「Pythonでの常識はPerlでの非常識」
    • 1つの言語での常識はほかの言語でかわる
  • Cで実装しても速いわけではない
    • Cで実装したエンジンでTenjinより速いものはほとんどない

ランチタイムLT:Python in Rakuten

  • I'll speak in English(会場w)
    • …というのは厳しいので日本語で(会場w)
  • Rubyだけじゃないよ
    • 社内でPythonメーリンリスト 参加者150人
    • 人材募集にPythonも

ランチタイムLT:Python in router +α

  • ballaloのルーターに仕込んで、Webページにツールバーを追加する
    • 携帯から情報をプッシュ
  • 実装した
  • メモリ少ないので1プロセス
  • unix domain socket

ランチタイムLT:Sphinx theme collection 2011 spring

  • デフォルトテーマ ダサくね?w
  • conf.py

ランチタイムLT:PyCon APAC

  • ASIA PACIFIC
  • 2010 Singapore
    • 「日本でもやりたいね」とうっかり言って今日
  • 今年もSingaporeで

ランチタイムLT:私もカンファレンスに連れてって(堀田)

  • 海外のカンファレンスに行ったほうがいい、とよく言われる
  • われわれの会社
    • PyCon
    • django
  • どこに行くか、誰と話したいのか、を明確にして参加
  • PyPiにコードを置いておく
    • 自己紹介
  • 日本のことを調べておく
    • 人口、気温、おいしい酒などのたわいもない話が出てくるので調べておく
  • おみやげを持っていく
    • 忍者人気w
  • コーヒータイムと夜はかならず行く
  • Sprintに行く
  • 帰ったらLinkedInとtwitterとfacebook

ランチタイムLT:Pythonでフィジカルコンピューティング

  • ロボットミドルウェア開発のため、CORBAが使えるスクリプト言語としてPythonを始めた
  • HRP-4C未夢の中身
  • ハードウェアとソフトウェアの融合
    • iPhone
    • Kinnect
  • ハード+Pythonの3種類
    • PCのPythonから
    • 小さいデバイスにPython
    • Pythonを動かすためにハードを作る
  • PCから
    • Arduino
    • ハードを操作するPythonモジュールが異常に充実
  • 小さいデバイスに
    • python-on-a-chip(py14p)
    • Pythonのバイドコードが動くVM
    • Arduino Proなら動く
    • スレッドは独自
    • Pythonソースは処理できない
    • pyImagecreater.pyでバイトコードに
    • VMの移植: 6つのハンドラを実装するだけ
  • 3色LEDでデモ
    • ColorLEDクラス
    • のこぎり波ジェネレータ
  • GAEで開発環境作れないかな
  • Pythonからハードを作る
  • 最近のハードウェア
    • プログラマブルなハードが流行
    • FPGA
      • 研究・試作
    • MyHDL
    • PythonからHDLに変換
      • シミュレーションでテストしてからHDLにしてFPGAに
      • ハードは手戻りがやりにくいので
    • 関数が1つのモジュール
    • ふるまいを関数内関数に
    • ドラム型LEDディスプレイのデモ(ビデオ)

ハードウェアを用いてPythonを学ぶ

  • マイコンをコンピュータのPythonから制御
  • ハード屋なのでCしかわからない、C++とかよくわからない
  • OSに依存しないソフトをPythonで
    • Javaはシリアルポートはあまり対応していない
  • Pythonはハード屋が喜ぶライブラリが無駄に豊富
    • PyGame
    • Matplotlib
  • 電光掲示板
  • 困ったこと
    • シリアル送信時の改行文字の違い
    • OSごとのシリアルポートの違い
    • PCの性能ごとの実行速度の違い
      • 遅いPCでループが遅くなる
      • → マイコン側でループさせる
  • デモ
  • 電光掲示板
    • 例外処理が厳しくて落ちる
    • 文字が流れる
  • Pong
    • キーボード操作で1人遊び → 面白くないのでやめたw
    • 可変抵抗で操作、Pythonと対決
      • Y軸をボールと同期させるので絶対に負けないw
    • デモ
      • シリアルケーブルが抜けてたw
      • つまみの操作が微妙でおもしろいw
  • 1か月でPythonを覚えた
  • Pythonを擬人化してみたw
    • 錦 伊織(仮)
    • 胸重要←Pythonのコードはインデントがどんどん飛び出すw

最速WSGI Server研究会

  • 高速化の話
  • meinheldを作った
    • WSGIサーバー
    • high performance
    • 「nodeナントカ、遅いですよね」w
  • WSGI Serverの実装
    • 「HTTPサーバーを書けばいいだけです」w
    • 仕様 PEP333
  • 並列処理
    • 最適解はシングルプロセスでfork
    • メニーコア
    • 「forkできないサーバーは捨てちゃってください」w
  • 「いちばん速いコードは書かないコード」
    • 必要ないコードは書かない
  • C拡張モジュールはPythonと絡むと絡み損
    • Cから見るとPythonはやはり遅い
    • 過度のチューニングは誤差レベル
  • 高速化
    • HTTP Perser
      • 文字列の解析に時間がかかる
      • Cで記述されたものを使う
        • Zed's http parser:mongrel、unicornが使ってる
        • ry's http parser:node.jsが使ってる
    • 時間をキャッシュ
      • HTTPのヘッダやログは秒オーダー
      • 1秒に1回だけ時間を引けばいい
      • 「みなさんnginxのコードを読んでると思うので割愛します」w
    • オブジェクトの使い回し
      • abでベンチとるとけっこう効果
  • マルチスレッドの問題
    • GIL
      • スレッドで動作させても同時に実行できない
    • Python以外で
      • 複雑(どこかしらブロックする)、スレッドセーフでないライブラリ
  • 先人に学ぶ
    • Non Blocking I/Oとイベント駆動
  • コードの最適化
    • Python C API?
      • バイトコードが減る、関数の実行フレームを作らなくなる
      • C APIはPythonで使う前提:いちいち文字列をコピーしたり
      • 自分で使うだけなら自分でやっちゃたほうが
    • 基本
      • writteをへらすとか
    • メモリアロケート
      • Pythonのメモリプールを使ったほうが使いまわしが効いて高速
      • 大きいデータはプールされないので自前freelist
  • プロファイリングで必ず確認
    • CPU profilerで視覚化
  • 参照カウント
    • 覚えることは少ない
  • マクロでログ
  • パフォーマンス測定
    • google perftool
  • リークチェック
    • valgrind
    • メモリプールがあるのでわかりづらい → メモリプールを使わないPythonを作って確認
    • 循環参照の検出は苦手なので、シンプルなコードで確認
  • segmentation fault
    • gdb

MessagePack

  • MessagePack
    • JSONに似たデータフォーマット。バイナリ
    • スキーマレス
  • 0~127は1バイトで表現
    • 先頭ビットが0
  • NULLもBooleanも1バイト
  • MessagePack RPC
    • アプリケーションレイヤー
    • 送ったのと違う順序でレスポンスが帰ってきても大丈夫
  • ログをMessagePackで
  • ファイルフォーマットをMessagePackベースに
  • Cython
    • PythonのようなC
  • Whizzer
    • MessagePack RPCのPythonクライアント

LT:AppEngineと非同期と私(@jbking)

  • 非同期処理はいろいろなところにある
  • CPUを無駄にしない技術
  • Pythonで
    • ジェネレータ
    • Tornado
    • meinheld
    • gevent
    • など
  • GAE
    • Task Queue API、Cron
  • 非同期はテストしづらい
    • Twistedのテスト
    • GAE Testbed
  • 作ってる
    • GAE Deferred

LT:Python Djangoアプリケーション開発の事例(@horiuchi)

  • gumi
    • Webアプリの開発
    • ソーシャルアプリ
  • Perl時代が長かった
    • Sledge
  • PythonはDjangoが一発でインストールできたw
  • TOMATO
    • Python製のSWF合成エンジン
    • 内製
    • 近日公開予定

LT:InfoPileの紹介(石本)

  • 会社内で気軽にメールなどを共有
  • MUAと同じような使い勝手
  • Pure Python
  • アドレス帳
  • ファイルを共有
  • 古いバージョンを参照
  • スケッチ機能
    • Evernoteのパクりではないw
    • デスクトップのように

LT:JSON-RPC 2.0(@aodag)

  • MessagePack RPCのJSON版
  • Restful
    • URL設計めんどくだい
    • →POSTに逃げる
  • RPC
    • 全部POST
    • URLは1つ
    • 設計が楽
    • 実装が楽
      • 関数3つ
    • テストも楽
      • 普通の関数としてユニットテスト
    • キーワード引数
  • jsonrpc2作った
    • PyPiにアップロードされている

LT:グローバルPloneの開発スタイル(寺田)

  • Plone
    • Zope上のCMS
    • Plone 4
  • Plone Foundation
    • Board
    • Frame Work Team
    • Core Developers
    • trac + subversion
  • 開発
  • PLIP
    • PythonのPEPのようなもの
  • 実装
  • レビュー
  • 使わせてもらっている → 使って、いっしょに成長している

LT:遷移図作成ツールblockdiagの紹介(小宮)

  • コマンドラインとSphinxで動く
  • Excel方眼紙だと追加削除が大変、ずれる
    • →blockdiagを作った
  • テキストファイルで記述
  • 新機能
    • shapeを付けられるようになった
    • 矢印の折り返し機能
    • グループ表示のネスト機能
  • 今日、機能をひとつ追加してきた
    • サイトをクローリングしてキャプチャーして画面遷移図

LT:Benchmarker(桑田)

  • ベンチマーク用のライブラリ
  • 文字列の連結
    • 数が少なければjoinより+演算子のほうが速い
  • 「+=」と「= と +」
    • 微妙に性能が違う
    • 長い文字列x += s + '!' は速いが、長い文字列x = 長い文字列x + s + '!' は遅い
  • 演算子やメソッドのコスト
    • 長い文字列を途中で生成
  • Perlは構文解析段階で処理
  • ベンチマークをとってみないとわからない
  • 続きはWebで

LT:Sphinxからプレゼンスライドを作ってみた(清水川)

  • 「プレゼンツールのほうに注目してください」
  • 毎月勉強会
    • ミニハッカソン
  • PyCon JP、次、夏ぐらいにやりたい
  • Sphinxで作成して
  • s6を組み込んで
  • ブラウザで表示

LT:App Engineの紹介(松尾貴史)

  • 10万アクティブ開発者/月
  • 15万アプリがアクセス/日
  • 10奥PV/日
  • 「プログラミングGoogle App Engine」

LT:IKAZUCHI(森本)

  • コマンドラインから翻訳APIを呼び出す
  • poファイルの対訳を表示
  • vimから呼び出す
  • デモ
    • GoogleのAPI
    • MicrosoftのAPI
    • Yahoo Pipes

LT:量子力学のグラフィックな(小林)

  • テキストの数式を計算
  • プリプロセッサ
  • ディラック方程式

「プログラミングHaskell」

プログラミングHaskell
プログラミングHaskell
posted with amazlet at 11.01.17
Graham Hutton
オーム社
売り上げランキング: 108119

 Haskellを実際に使っている人の話を聞くと、関数型言語というより強い型付け言語であるのが重要であるらしいこと、そして関数型言語であるという性質が強い型付け言語であることに結び付いてその上に築かれているらしいことを感じるようになった。…いや、書いてて自分でも意味わかんないけど。

 本書はそのような性質のとおり、まず型の話から入り、それを元に関数→リスト→再帰→高階関数と章が進む。で、次にいきなりパーサーを作ってから、それをIOの説明につなげている。説明の筋道が自然でわかりやすい。ただし、Haskellのすべてをカバーしているわけではないけど。

 ほかの言語との比較がないことも特徴で、Haskellらしい例を中心にすっきりと解説している。ただ、「Haskellでは難しいことを易しく書けるが、易しいことが難しい」と言われるように、Haskell的に難しいことを省いているのかもしれないけど。

 あと、ていねいに訳注がついていて、読んでいてあれっと思うような部分をきっちりフォローしているのも印象的だった。

「日経Linux」2011年2月号

 Androidアプリネタ多し。特集2が「Androidアプリをコピペだけで作る」と題して、付属のDVD-ROMに入ったプログラムをビルドして動かしてみよう、という入門記事。なにげにNFCに対応してたり。関連してAndroidアプリ開発入門「イラストで分かるAndroidアプリ作り」が新連載で、開発環境の用意の話。「HTML5でつくるAndroidアプリ」も連載第2回で、video要素、audio要素、canvas要素の実例。

 第1特集がLinuxでUstream放送として、ブラウザでやる場合と、WebCamStudioでやる場合、WebCamStudio+ffmpegでやる場合を紹介。第3特集はWineで、いろいろなアプリで試した結果などが紹介されている。

 特選フリーソフトのコーナーでは、みんな大好きCalibreを紹介してた。特別企画はTiny Core Linuxの紹介記事。

 連載では、CentOS6が出てないけど「CentOS6を先取り」はUpstartとDovecotねたで、特にDovecotに力が入ってた。「ディストリビュータになろう」は、DebianやUbuntuで使われている.debパッケージの作り方。「ゼロから作る組み込みLinux機器」は、Gyazoの公開ソースによる画像サーバーをPC等で立ててLeopardBoardから写真を送る話。tftpブートやNFSルートで開発を進める方法も。「最新サーバーアプリ活用法」で毎回VPS/IaaSをレポートしてるのを面白く読んでたら、次号では格安VPS特集が載るらしい。

Rubyで“.”演算子を置き換えてみる

 Ruby上で自分で演算子を変更できるようにして、“.”のかわりに“->”を使えるようにするとどうなるかと思いました。そのために、Perlにあるソースフィルタの簡易版みたいな機能を試しに追加してみます。

注意:これは実用性のない単なるジョーク改造です。

 Ruby 1.9.2 p136のruby.cにこんな(↓)パッチを当てビルドしてみます。

 そのうえでこんな(↓)filter.rbを作ってカレントディレクトリに置きます。フィルタをKernel.source_filterとして定義しています。Kernel.source_filterは、ソースをStringとして受け取って、加工したStringとして返します。

def Kernel.source_filter(source)
  source.gsub(/->/, '.')
end

 で、こんな(↓)hoge.rbを書いてカレントディレクトリに置いてみます。

[3, 5, 7]->map {|i| i + 2 }->each do |i|
  puts i
end

 filter.rbを-rで読み込んだうえで、hoge.rbを実行してみます。

$ ruby -I. -rfilter hoge.rb
5
7
9

 …ルー語的なキモさ。

 続いて、カッコの開きと閉じを逆にしてみます。まずfilter.2.rbを書きます。

def Kernel.source_filter (source)
  source.tr('()[]{}', ')(][}{')
end

 それ用にfuga.rbを書きます。

puts ]1, 2, 3[.inject)0(}|r, i| r + i{

 実行してみます。

$ ruby -I. -rfilter2 fuga.rb
6

 …ないわー。

IPv4とIPv6とで表示の違うWebサーバーを作る

 www.kame.netでは、IPv6でアクセスしたときだけ亀が踊るようになっています。同じようなことを、手元で簡単に試してみます。

 以下、Ubuntu 10.10とApache HTTP Server(以下Apache)で試した内容ですが、ほかのOSやHTTPサーバーでもやることは同じはずです。

IPv6の準備

 いまどきのOS(Linux、BSD、Mac、Windows)ならデフォルトでIPv6に対応していると思います。ただし、IPv6のネットワークやアドレスを準備するほうが大変なので、ここではローカルホスト内で試します。

IPアドレスベースの仮想ホストを設定する

 IPv4とIPv6をIPアドレスベースの仮想ホストで分けます。

 Ubuntu 10.10でapache2をインストールすると、/etc/apache2/sites-availableディレクトリができて、仮想ホストごとに1ファイルずつ設定を置くようになっています。そこで、標準のdefaultファイルをコピーして、ipv6-localというファイルを作ります(この名前に意味はありません)。

$ cd /etc/apache2/sites-available
$ sudo cp default ipv6-local

 このipv6-localファイルを開いて、仮想ホストのIPアドレスを設定します。

$ sudo vi ipv6-local

<VirtualHost *:80>
    ↓
<irtualHost [::1]:80>

 "::1"はIPv6のループバックアドレスです。IPv6のIPアドレスは[ ]で囲んで指定します。

 設定した仮想ホストipv6-localを有効にします。

$ sudo a2ensite ipv6-local

IPv4とIPv6とで簡単に表示を変える

 このままだとIPv4とIPv6とで同じ内容が表示されます。DocumentRootを別にすれば内容が別になりますが、それではそれぞれのコンテンツを用意しなくてはなりません。IPv4とIPv6とで、まったく別ではなく、一部だけ違う表示にしてみます。

 まず、仮想ホストの設定を編集します。

$ sudo vi ipv6-local

 "<Directory /var/www/>"の指定の中に、以下の2行を追加します。

                AddType text/html .html6
                DirectoryIndex index.html6 index.html index.cgi index.pl index.php index.xhtml index.htm

 index.htmlより優先するindex.html6を追加し、.html6をtext/htmlとしてクライアントに返す設定です。

 そして、試しにデフォルトのindex.htmlを元に、少しだけ書き変えたindex.html6を作ります。

$ cd /var/www
$ sudo cp index.html index.html6
$ sudo vi index.html6

<html><body><h1>It works!</h1>
    ↓
<html><body><h1>It works in IPv6!</h1>

 ちなみにこれは、10年ぐらい前にwww.kame.netの踊る亀の仕組みとして講演で聞いた方法です。今も同じ方法を使っているかどうかはわかりませんが。

設定を反映する

 あとはApacheの設定を読み込み直すか再起動するだけ……のはずですが、Ubuntu 10.10ではIPv6のルーティングを設定していないと、ApacheがIPv6アドレスの設定を無効にするようです。そのため、そのままApacheの再起動などをしても、設定エラーになります。説明はこのへん(↓)。

 が、OS自体を再起動すると、なぜかApacheのIPv6アドレス設定が有効になってくれる、という挙動になっていました。バッドノウハウですね。

アクセスしてみる

 というわけで、Ubuntuを再起動したらローカルのWebブラウザでアクセスしてみます。

 IPv4の"127.0.0.1"でアクセスした場合。

IPv4でアクセスした場合

 IPv6の"::1"でアクセスした場合。Apacheの設定と同じく、IPアドレスを[ ]で囲みます。

IPv6でアクセスした場合

 めでたしめでたし。

コンテンツワンのRails 3のセミナーを見てきた

 ruby-list MLに「2011年は、Rails3を使おう!」というセミナーの案内が出ていたので、ちょいと覗いてきました。以下、メモそのまま。

Rails 3情報源の歩き方(knsmr)

  • ゾンビの絵
    • 最近話題になったRails学習コンテンツ
  • @IT編集部
  • MatzさんがおもしろいのでRubyやRailsを追いかけるようになった
  • 自分でもRails 3で作ってみた
    • Worklista
      • 自分の仕事歴に関するURLをまとめるサービス
  • Railsは英語だと情報がいっぱいある
    • エンジニアに英語は重要
    • 仕事柄、RSSで英語のサイトを大量に読んでいる
  • Rails公式サイト
    • 有名なスクリーンキャスト
      • 伝説のDHHによるRails 0.5でのスクリーンキャストも
    • ドキュメント
      • 特にGuides
        • ひととおり読んでおくとよい
      • API
        • ソースもその場で
    • アナウンス:ブログ
  • EdgeRails info
    • 最近停滞
  • 公式レポジトリ
    • GitHub
    • RailsコミュニティはGitHubの中でもよくつながっている
    • テスト文化により、コラボレーションが促進されている
    • GitHubはウォッチャー数がひとつの指標
      • が、かつて人気があったが、というものもある
  • 公式BTS
    • 松田さん推薦
    • が、最近スパムが多い
  • プラグインのさがしかた
    • Akasaka.rb
    • コミュニティがあるもの
  • ライブラリをジャンル別に探す
    • Ruby Toolbok
  • Railsplugin.org
    • 互換性を一覧表にしている
      • Railsのバージョン、Rubyのバージョンなど
  • Railsはスクリーンキャストが豊富
    • Railscasts
      • 毎週コンスタントに欠かさず更新
      • Railsの解説、MongoDB、HTML5のアプリケーションキャッシュのためのプラグインなど
    • ASCIIcasts
      • Railscastsを文字に起こしたサイト
    • 公式サイトのガイド動画
      • Scaling Railsシリーズをやっていた人
      • ゾンビのイラストのところも同じ人
    • オンラインでコードを入れさせて試験する
  • Rails 3のチートシート
    • エンビーラボ
    • これから始める人におすすめ
  • Ruby on Rails Tutorial
    • よくできている
    • 無償でオンラインで公開
    • PDF版は有償
    • 動画も
      • Herokuも含めて、これからサービスを作る人むけ
  • Rails Wiki
    • 日本語化が遅れている
  • Confreaks
    • イベント情報
    • 動画ホスティングなどもやっているプロ
  • カンファレンス
    • RubyConf
    • RailsConf
      • Railsはビジネスマンっぽい?
    • RubyKaigi
    • EuRoko
    • Ruby World Conference
  • OSSは人が作るから、どんどん会いにいくといい(松田)
    • Railsコアチーム
    • Rubyのコミッタ
    • DHH
      • ビジネスの話が面白い
      • 運転動画も公開している
      • 「TwitterとかFacebookじゃなくて、地元で愛されるイタリア料理店をめざせ」
    • Matzにっき
      • うっかりすると重要な情報や議論が
    • Yehuda Katz
      • サーバーの次はモバイルだ、JavaScriptをやる、と宣言
      • 延々としゃべる、しかもコードの話
        • パッションがすごい
  • 情報源
    • Ruby Inside、Rails Inside
    • Engine Yardのブログ
    • はてダでRubyやRailsのキーワードをRSSでチェック
    • Ruby Quicktips
      • Tumblrで毎日Tips
      • Kernel#y:YAMLでpするメソッド
    • るびま
      • コア
  • 質問と回答
    • Ruby on Rails Talk
      • 流量もノイズも多いので、検索
    • StackOverflow
      • 日本語版をやりたいと会社に言っている
    • 関東在住ならRails勉強会
    • 関西ならRails勉強会関西
  • @ITでRails Hubはじめました

Rails 3を使おう(masuidrive)

  • 多くの人は2005年ぐらいから
  • 末に1.0
  • 2年で2.0
  • 最近3.0
    • Windowsでも3.0から安心して使える
  • 特徴
  • 1系
    • CoC、DRY、MVCフルスタック、scaffold
    • 書くコードを少なくする
    • いろいろな問題もかかえていた
      • 不安定、遅い、メモリ食いすぎ、実行環境のサーバー、実績が少ない
      • Rubyを書ける人が少ない(海外)
    • 本が出たり、サーバー性能が上がったり
  • 2系
    • メジャーバージョンアップにより、使う人が増えた
    • RESTfulなURL
    • JSON
    • XSS対策
      • 問題があると有名な先生にブログで吊される
    • 多言語対応
    • クエリーキャッシュ
    • 仕事で使えるようになった
    • 問題
      • 複雑になりすぎた
        • Rails 1はソースを読んだり修正したりできたが、2では大変になった
      • プラグインの内部インターフェイスがきちんと決まっていなくて、Railsがバージョンアップするとすぐ動かなくなる
      • Rubyやライブラリのバージョンの依存関係
  • 2以後の周辺の動き
    • 新しいフレームワーク
      • Sinatra
        • 非常にシンプル
        • Sinatraでプロトタイプしたり
      • Merb+DataMapper
        • Another Rails
        • モジュール分けして切り替え可能に
        • 当時使ってみた
          • 信じられないほど安定性が悪かった
          • モジュールのリリース時期がばらばらでバージョンをあわせるのが大変
        • Rails 3に合流するというアナウンス
    • Passenger
      • ApacheにRailsのラッパーを組み込む
      • 動かすのが簡単になった
    • Heroku
      • コマンド1つでアプリをデプロイ
      • このころ、Railsの基盤をビジネスにする人が増えた
  • Rails 3
    • セクシーになった
      • 出るところは出る、ひっこむところはひっこんだ
    • いろいろなHashでの指定がメソッドチェーンベースに
    • フルスタックだけどモジューラブルに
      • 標準のセット構成が提供される
    • データマッパーにArel層が追加
      • NoSQLでもできる
    • 新しいルーティング
    • gemを管理するためのbundler
  • Rails 2から3への移行
    • 安定性、移行の手間
    • なぜアップグレードするか
      • 最新のRailsがいいRails
        • パフォーマンスも
      • 新しいプラグインは3向けに作られる
      • マイナーバージョンを1つ飛ばしてアップグレードするのは大変
        • いま3には2.3との互換レイヤーがあるが、なくなる予定
    • 安定性
      • クラッシュしない
      • APIの変更がない
        • が、Railsでは変化がよしとされるので
      • ある程度のアクセス規模のサービスの経験がまだない?
        • アーロン「3.0.3なら十分使える」
    • パフォーマンス
      • モジュール構造のオーバーヘッドがあった
        • 特にActiveRecordまわり
      • 「2.3.5の5倍遅い」というissue
        • このissueをもとにチューニング
        • プロファイリング
        • 3.0.2で大きく改善
        • ActiveRecordの構造:下にActiveModelとArel、SQL Adapter
          • Arelにポイントを絞って改善
  • コードの書き換え
    • テストを書いているか:ないならあきらめる
    • まずは2.3.8にアップデート:ここで動かなければあきらめる
    • プラグインが対応しているか
      • ここが一番大きい。内部構造が違っているので
    • 書き換えポイント
      • config
        • 特にルーティング
          • rake routeでチェック
          • rails-update pluginで生成
        • rails_root
      • ActiveRecordまわりが変わっている
    • "Rails Update Handbook"を見ながら書き換えるのが楽
    • 達人出版会でRails 3の本が近日β版で登場予定
      • オイアックス黒田さん
  • ActiveRecord 3
    • findの細かい指定がメソッドチェーンに
    • 古い書き方も後方互換性のため3.0.xでは許す
  • ルーティング
    • ハッシュでの指定をメソッドやブロックに
  • Bundler
    • 作ったあとにほかの人にメンテナンスしてもらうときに簡単
  • デフォルトで出力をHTMLエスケープ
  • ActionMailer
    • あれはモデルなのかコントローラなのか -> コントロールに
  • script/*がrailsコマンドに
  • respond_withで出力を自動で切り替え
    • ActiveRecordのLazy Loadingでパフォーマンス
  • Rails 3への期待
    • Railsでは最新版を使うことが避けられない
      • APIが規定されてあげやすくなる
    • モジュール化でほかに影響せずに局所的にパフォーマンスを改善しやすくなる
    • 3.1とかが出る前に、3系に慣れるのに3.0はいい
  • 宣伝
    • Javascriptでスマホアプリを使えるTitanium Toolkit
      • 勉強会やります
    • @appcelerator_ja
  • Q: Rubyのバージョンは1.8系? 1.9系?
    • A: 自分はまだ1.8.7
  • Q: 実際のプロジェクトでアップグレードしていないもの
    • A:社内で動かしっぱなしのもの

Rails技術者認定試験(吉政)

  • 11月発足
  • @IT Rails Hub内
  • 1月にβ試験
  • 模擬試験問題を公開予定
  • 本試験3~4月の予定
  • まずはブロンズ、紙なしのCBT
    • 1万円
  • 落ち着いたらシルバー

「ASCII.technologies」2011年2月号

 第1特集は「2011年のITはこうなる」と題して各ジャンルごとの識者がトレンドを解説。特にサーバーハードまわりの話が多い。GPGPU人気。

 「キホンから学ぶLDAP」は、日本LDAPユーザ会の小田切氏が基礎と利用法を解説。

 「快速ZFSストレージ構築」は、元NSUGの長原氏が、FreeBSDでのZFSの使い方を解説。いきなりルートパーティションをZFSにしたり(システムのアップデートをスナップショットで安全にするという理屈)、SSDをキャッシュにしたり(ZILとL2ARCの両方)という攻めの構成。

 Cassandra連載はクラスターの構築。OpenBlockS連載はlibeventの解説。鈴木淳也氏の米国レポートは最近のMicrosoftの分析で、ちょうどCESの話が聞こえてくる時期に読んだので自分の中でちょっとシンクロした。

「フリーランス&個人事業主のための確定申告」第5版(平成23年対応)

 フリーター1年生なので、青色申告について勉強してます!

「WEB+DB PRESS」vol.60

WEB+DB PRESS Vol.60
WEB+DB PRESS Vol.60
posted with amazlet at 11.01.10

技術評論社
売り上げランキング: 457

 面白いらしいと聞いていた特集「プログラマが知るべき言語設計の基礎知識」はやはり面白かった。言語を使う側から見て、言語のループや変数やオブジェクト指向などのモデルがどうしてそうなっているかを解説している。のだけど、共通するメッセージとして「ルールは普遍的ではない」というのを強調していて、その説明が興味深かった。

 「圏外からのWeb未来観測は」、あの金子勇氏が登場。複雑系っぽいパラメータチューニングが得意という話が、いかにもっぽくて面白い。

 特集2は「jQuery実践入門」。よく使いそうなあたりをうまく網羅して紹介していてわかりやすい。それに関連して「JavaScriptの玉手箱」はHTML5にある機能を古いブラウザ向けに実装するライブラリの話。

 特集3「本番プロジェクト運営ノウハウ大公開」は、チームラボがチームづくり、永和システムマネジメントがアジャイルな計画、ゼロベースがアジャイルなUIデザイン、DeNAがソーシャルゲーム開発について、プロジェクト運営的な部分の話をそれぞれ紹介している。

 羽生氏の「これからの10年、どうサバイブするか」は、SD誌の「老頭児エンジニアのつぶやき」で書いてたのと同じ路線の拡大版。「10年後の自分は確実に10才年寄りになっている」というredpillのようなメッセージを軸に、顧客の要求によくある「欲しいと言っているものと本当に欲しいものは違う」ケースの分析手法を自分自身に当てはめる話。

 「つながるJava」は、コレクションライブラリの紹介をとっかかりに、LOUDSなどのデータ構造を紹介していて面白かった。ほか連載は、「DBアタマアカデミー」がRDBMSごとの実行計画の違いの解説、「PHP転ばぬ先の杖」が日時の扱いの罠の話、「Ruby in your hands」がjpmobileによるRailsアプリの携帯対応、「Perl Hackers Hub」が奥一穂氏によるforkやシグナルなどのUnix系のクリティカルな処理の解説、「モダンWebインタフェース構築術」がJavaScriptとFlashとの連係。「データ発見隊」は計算機上のコンテキストと実世界のコンテキストのインタラクションについて。

Android Bazaar and Conference 2011 Winterに行った

 日本Androidの会のイベントAndroid Bazaar and Conference 2011 Winterを見てきました。午前は基調講演をustで見て、午後から会場へ。

 …すっごい人数。バザー(展示)もカンファレンス(セッション)も人でいっぱい。時間や枠によっては入場制限もありました。

 以下、聴いたセッションのメモほぼそのまま。改めて見ると、千差万別なバックグラウンドの人たちが集まってるなと思いました。

女子部 / デ部

  • 女子部
    • 着ぐるみ
    • 「DJモグタソのヒャッハー(108)ナイト」
    • リスナーからのおたより
    • ゴリラさんw
    • 合コン
      • iPhoneとAndoroidの違いを聞かれたら?
        • →「教えてやるからうちこいよ」(ただしイケメンに限る)
  • デ部
    • アプリ開発
    • Marketでアプリを公開している人
    • デ部長はAPI Expert
    • DropCart
      • アプリを買うとTシャツ
    • モーション
    • エージェント通信
    • Bluetooth
    • 東京で開催
    • GDD2010
    • DEB App Indexアプリ
  • Android温泉
    • 合宿
    • 第1回 熱海
    • マジで開発
    • 第2回はカレー作った

SONY

  • (NFCの話をやっていたので途中から参加)
  • NFC API
    • NexusS
  • Felica
    • Felica plug
      • カードとして見える
      • NFC Type3タグ対応
    • おサイフケータイ
    • リーダー、ライター
  • 日本を中心にアジアで
  • TV、プレステ
  • Felicaランチャー
    • NFC Type3タグ対応
  • SDK for Felica
  • 電子マネービューアー
  • タッチパネルKIOSK端末
  • おサイフケータイ
    • Androidでも
  • サービス
  • カード、P2P、リーダライターの3つ
    • プッシュ通信
  • フィーチャーフォンでタグリーダーアプリ
  • Handover
    • ドコモの去年の春モデルぐらいから
    • iアプリタッチ
  • Push通信
    • 端末どうしで
  • デモ
  • Felicaリーダーライター内蔵PC
    • Adobe AIRアプリ
    • Edyをかざす
      • ビューアーが起動
    • Nanacoをかざす
      • ビューアー
      • キャンペーンのくじ
  • Type 3フォーマットのカード
    • タグを発行
    • もういちどかざすと識別
  • 角川書店
    • フィギュアにFelica
    • かざすと有料動画配信サイトに飛び自動ログイン
  • NokiaのNFCケータイ
    • Felica対応歩数計
    • ケータイのリーダーで歩数が見える
  • Type 3タグ
    • Nokia、NexusS、おサイフケータイでえ見える
  • NFCでなにができるか
    • タグ広告
    • ポスターにNFCタグ、NexusSをかざすと店の情報
    • 決済、クーポンも近いうち
    • Honeycomb:店員が持ち歩くPOS端末兼在庫端末
    • 健康機器
    • デジタルコンテンツ自動販売機
    • 家庭内リモコン
    • チラシと決済
    • デジタル機器をつなぐIF
      • カードがチャンネルになる
      • プライベートな写真のアクセス権をカードにひもづけ
    • P2Pでデジタルコンテンツを共有
    • アフィリエイト
    • タッチするだけでストリーミンング
  • 当面できること
    • SONYとして
      • ブラウザ
        • プラグインを入れてFelicaからURL
      • Dalvik
    • NFCライブラリ gingerbread
    • なるべく早く準備
  • 今日からできること
    • Felicaランチャー
    • ICタグリーダー
    • AIR Flash SDK
    • フィーチャーホンのICタグリーダー
    • NexusSでやるならソースコードを見て
    • スイッチサイエンスのType 3タグリーダーライター

EPUB3/HTMLの日本語

  • EPUB日本語拡張プロジェクトの概要(下川)
    • 縦書き
      • 世界のEPUBリーダーに日本語を
    • EPUBJreq
      • 2010年4月
      • それを実装してEPUB3にもっていく作業中
    • HTMLとEPUBは表裏一体
      • 同じレンダリングエンジン
      • スクロールじゃなくてページネーション、程度
    • ブラウザの縦書き対応が実装されつつある
    • オープンで議論中
      • 縦書きは日本から声をあげていかないと採用されない
    • WebKitに縦書きがどんどん実装されている
    • Chrome 10で表示
      • 縦書き・ルビはできているが、文字は横に寝てしまっている
    • IEで
      • 縦書き非対応
  • Webページで失敗した縦書きが電子書籍で蘇る(村田真)
    • 縦書きは必要か
      • 日本でも議論
        • 縦書き不要論の作家も
      • Webページ:いらないという意見が多い
      • 書籍では? TVでは?
    • HTML・CSS・JavaScriptから使えるようになる
    • Webページでの縦書き
      • W3C勧告候補:2003年
        • IEで実装
      • が、普及していない
      • 一般的に仕様は普及しないことが多い
        • ユーザーが必要としていても普及しないことも多い
          • 例:かつてのAjax(XHR)
    • Webページだけに限ると縦書きは普及しないが、電子書籍なら普及する可能性
      • 日本・台湾・香港
    • EPUB
      • HTMLとCSSをZIPで固めたもの
      • 2010年の会議で、CSSに基づく縦書きを入れる方針
      • 2011年5月にEPUB 3.0予定
    • W3C CSS WG
    • 実装
      • IE
        • 2003年仕様の実装があるが仕様が変わった
      • Webkit
        • 現在さかんに実装
        • 電子書籍では圧倒的に強い
    • Safariで「草枕」を縦書き表示
      • ルビ、傍点も
      • スクロール
  • CSS Text Writing Mode(W3C CSS WG 石井)
    • W3CではWeb以外の(HTML等をベースにした)Rendering Technologyにも手を広げている
      • EPUB、デジタル放送など
    • EPUB3
      • 多言語対応
        • 禁則、両端揃え、縦書き、ルビなど
      • スタイリング
        • 多段組、Media Query(デバイスに応じて表示を変える)
      • メデイア
      • 電子書籍
    • CSS3(は実在しない)
      • モジュールごとにLevelが規定される
    • 仕様策定プロセス
      • ふつう2~3年、長いもので10年
    • CSSにおける国際対応
      • 1999:International Layoutが提案
      • CSS3 Text Module
      • 差し戻し
      • 現在は6つの仕様
    • CSS Text Module Level 3
      • 禁則処理
      • ぶら下がり
      • 下線、傍点
      • 文字変換:大文字小文字、大がな小がな
    • CSS Writing Modes Module Level 3
      • 縦書き
      • 書字方向基本部分:世界中の言語の文字の流れる方向を分析
        • Right-To-Left、縦書き(行が右から左)、縦書き(行が左から右)
      • CSSのボックスモデルをどうするか
      • 縦中横
    • ほかの仕様
      • CSS Ruby
        • HTML5にルビがある。より細かいレイアウト指定
        • もうすぐWD
      • CSS Line Grid
        • 進展なし
        • 電子書籍に必要、再開させる
      • CSS Line Layout
      • 論理方向
    • フィードバックを
  • Q:EPUBビューアーはブラウザ? 専用ビューアーの出番はない?
    • A:いまのAndroidのWebKitは古い。それが新しくなれば専用ビューアーが作りやすくなる
  • Q:RtoLのほか、奇数行と偶数行で方向がかわる歴史的言語の対応予定は?
    • A:いまのところない。Unicodeの範囲
  • Q:EPUBのレンダリングエンジンを実装する近道は?
    • A:楽なのはWebKit
    • 自分で作るにはHTL、CSS、JavaScriptなどのエンジンを全部作る必要
    • 特定用途向け(青空文庫ビューアーなど)であればEPUB3をフルに実装しなくても

はてな(id:cho45)

  • はてな知ってる人→ほぼ全員
  • ちょうど1年前からAndroidのためJavaを始めた
  • はてなの開発事例
  • フォトライフ for Android
    • 写真を閲覧、スター付け
    • HT-03Aが出たぐらいに作った
    • 初Android
    • ウェブでは解決できないことを解決
      • HT-03AではWebを見るのが大変
    • アップロード、スライドショー
    • 閲覧の実装
      • Activity Stack
        • ウェブと同じような遷移
      • Satckに残っているActivityインスタンスは解放されない →OOM
        • ウェブアプリを作っていると富豪的にメモリを使いがち
        • サムネイルを解放してonResumeでキャッシュから読み直す
      • 端末回転の実装
        • 当初やっていなかった
        • 読み直すことになるので遅い
        • 回転Intentをまじめに実装
    • アップロード
      • Serviceを使わなくてもできるかと思ったけど無理だった。Serviceを積極的に使うほうがいい
        • ウェブアプリのワーカーサーバーと同じ感覚
      • プログレスのNotification
      • 閲覧と別プロセスにしてメモリ消費をおさえる
      • 非同期API(ACTION_SEND)と同期API(独自Intent)
    • 自動アップロード
      • 寒くて手を外に出したくないときに便利
      • ファイルシステムを監視して(mtime)更新されたらアップロード
        • 撮影Intentは各社独自実装なので念のため避けた
      • バッテリーを食う
        • スクリーンがついているときだけ監視するようい
      • lastModifiedが起動直後に狂う問題(HT-03A)
        • 起動してからTZが設定されるまでにタイムラグ。なんとか対応
    • Serviceの常時起動
      • 死なない前提ではあるが、万一死ぬと困る
      • AlarmMangerで死活監視
    • メモリ消費が大きいので対策
      • Memory Analyzer(Eclipseプラグイン)
        • メモリ消費の統計をとる
        • 画像系が消費していると思っていたら、実はURL文字列で消費していた
      • DDMSで見れるスレッド一覧
        • 意図していないスレッド
          • HttpClientがスレッドを作る
      • traceview
        • トレースの結果をビジュアライズ
        • UIスレッドがブロックする、とか
    • バグレポート送信機能
      • ケーブルをつないでないとエラーがわからないので、メールで送信するようにした
      • ほしいけど買えない端末からエラーが来るとmoge
  • はてなログイン管理
    • アカウンド情報管理
      • ユーザー情報を何度も入れたくない
      • Androidアプリをいくつも作る予定
      • 1.6にはアカウントマネージャ機能がなかった
    • Content Provider + permissionを考えたがセキュリティの問題
      • 先に定義したものにパーミッションが
      • Intentで
    • 2系ではアカウントマネージャがあるのでそっちを使うようにしたい
      • 検証中
  • はてなモノリス
    • アプリでバーコードを読んで投稿
    • できるだけウェブ側で実装
      • Androidはウェブや外部アプリとの連係がやりやすい
    • zxing
      • バーコード・QRコードのライブラリ
      • リソースや依存関係が複雑。移植
      • gitのサブモジュールにしてリソース名にprefixをつけた。苦肉の策であまりよくない
    • 本番サーバとテストサーバの切り替えを隠し設定に。Intentから
    • デバッグサーバ
      • adbでdebug true
      • onCreateで文字列"debug"が渡された場合に処理
    • 国際化
      • 不完全(単数系・複数形)なのでLocale.Javaラッパー
  • はてなココ
    • 位置情報
    • WebViewを組み込んだ
      • アプリの中でウェブ表示
      • UIをウェブに寄せる
      • アプリとウェブで開発していると、それぞれバージョンが上がって収集がつかなくなる
  • ウェブエンジニアが思うこと
    • 基本はウェブ
    • Intentは高機能なリンク
    • Activityは進化したページ
    • Serviceはワーカー
    • ウェブ開発の知識が生かせる
    • ウェブとのシームレスな連係は未来的

Re: zshで記号プログラミング

内容は zsh の Hello world をアルファベット、数字を使わずに記号だけで書くというもの。資料は slidesahre で公開してる

http://d.hatena.ne.jp/mollifier/20110109/p1

 すごいなあ。その発想はなかった的技の連続。

 ところで、echo相当の部分は、ヒアストリング(<<<)を使うと記号で簡単に書けるかも、と思いました。

% ___='Hello World'
% <<<$___
Hello World

「新春座談会 このコンピュータ書がすごい! 2011年版」をustで見た

 トークイベント「新春座談会 このコンピュータ書がすごい! 2011年版」をustreamで見ました。

 とりあえずメモそのまま。ぼーっと見ていたのでちゃんと追えてません。

  • 年間1位
    • (書名発表後からust開始)
    • 担当稲尾さん
  • 去年以前出た本を紹介
    • 14位「マスタリングTCP/IP」
    • 第4版
    • おなじみ
  • 10位「現場のプロから学ぶXHTML+CSS」
    • 教科書的定番
  • 19位「エンジニアが教えるミックス・テクニック99」
    • ここしか
  • Android、iPhone
    • 去年は、特にiPhone。Androidはあまり出ていなかった
    • 去年、機体がいろいろ出た
  • iPhone・iPadブーム
    • iOS系
  • ジャンルを絞った本がいろいろ出た
    • 「iOSデバッグ&最適化技法 for iPad/iPhone」
    • 「基礎から学べる組み込みAndroid」
    • 「AndroidアプリUIデザイン&プログラミング」
  • 同じシリーズでiPhone・Androidをやる流れ
    • 「iOS SDK Hacks」「Android Hacks」
      • iOS 4対応が2月に出ます(矢野)
  • 電子書籍元年
    • 電子書籍に関する本が去年まとめてたくさん出た
    • 全体的な動き
    • 「電子書籍の衝撃」
      • ひっぱった
      • 早い時期に出た本だけあって時期尚早な感も
    • 「電子書籍革命の真実」
      • バランスがよい
      • インタビューを元に独自の視点でまとめた
      • 1年たつと状況はかわるが、将来ふりかえるのに役立ちそう
    • 「電子出版の構図」
      • 歴史的な視点
    • 「電子書籍の真実」「電子書籍の時代は本当に来るのか」
      • 業界をとりまく構図
    • 「電子本をバカにするなかれ」
      • 出版全般をあつかっていておもしろい
    • 「ブックビジネス2.0」
      • 何人かが書いている
      • 電子書籍というより、書籍の将来像
    • 「電子書籍の作り方」
      • いちばんよくまとまっている
      • ワークフローもふくめて
    • 「電子書籍で生き残る技術」
      • 異色。データをいじる現場の話(森田)
    • 「電子書籍自炊マニュアル」
      • ネットに情報があるが1冊にまとまっている
    • 「電子書籍で人気小説を書こう」
      • あまり電子書籍は関係ないが、そのぐらい浸透
    • 「誰でも作れる電子書籍」
      • ハウツーが書いてないので批判が出た
    • 「(?)」
      • SF作家による壮大なスケールの話
  • ランキングに入っていないもの
    • 試験対策本
    • ムック
    • 年賀状本
  • 1月のランキング
    • 「Hadoop」
      • この本以降にいろいろ
    • 「コードからわかるAndroidプログラミングのしくみ」
      • コードからわかるのが支持?
    • 「CGイラストテクニック」
    • 「Head First Rails」
      • 洋書にしては珍しくわかりやすい
    • 「Googleクラウドの核心」
      • 原題Datacenter as a computer
      • 付録にエラー率の論文
  • 2月
    • 「Software Design総集編」
      • たいへんオトク
    • 「文字コード技術入門」
      • 文字コードの問題は複雑だが、この本を読めばわかる
    • 「Kindle(?)」
      • 実は新聞に関する本
    • 「図解クラウドはやわかり」
      • 一般向けのビジネス用語に
    • 「(?)」
      • アスキーメディアワークスのマンガ
    • 「REMIX」
      • レッシグのシリーズ最後
      • 商業経済と共有経済の2つの文化を混ぜる
      • いまの著作権のルールが使いづらいことに対する提言
    • 「MAKE:09」
      • DIY、電子工作、手芸。イベントも人気(矢野)
    • 「iPhone仕事術」
      • ビジネスマン向け
    • 「?」
      • openframeworks?
    • 「実用Git」
      • 入門から実際に使うまで、まとまりがいい
    • 「Web制作の現場で使うjQueryデザイン入門」
      • jQueryの本もいろいろ出た
    • 「日本のコンピュータ史」
      • 第3巻。前の2巻がCD-ROMでついてくる
      • 7,600円
  • 3月
    • 「できるポケット+ Evernote」
      • なんで日本でEvernoteが流行ってるのか…
    • 「できる100ワザ ツイッター」
      • コグレさんつながり
    • 「本気で稼ぐためのアフィリエイトの真実とノウハウ」
      • コグレさん推薦
      • 題名はうさんくさいが内容はまとも
    • 「ガベージコレクションのアルゴリズムと実装」
      • GCの本はほかにしばらく出ないだろう
    • 「情熱プログラマー」
      • 「My job went to India」改訂
      • 動きがいい。前向きなタイトルが評価された
    • 「はじめての人のためのLisp」
      • 復刊というか増補改訂
      • 古い本だが出してみると好評
      • まじめに、おもしろおかしく
    • 「(?)」
      • ゲームデザインというより発想術
    • 「Pad VS. キンドル」
      • 出るより前に。予測なのでややもの足りない感も
    • 「徹底解説HTML5マークアップガイドブック」「HTML5&API入門」
      • WEB+DB PRESSでHTML5の記事をやるとウケた(稲尾)
    • 「(?)」
      • デザイナー向け
    • 「iPhone SDK開発のレシピ」
      • クックブック本
    • 「超簡単ツイッターが1時間で身につく本」
      • 一般の人向け
  • 「ネットで成功しているのは やめない人たちである」
    • アルファブロガーのアンケート
    • 生データ+いしたにさんの独自の視点で分析
  • 「ブログ誕生」
    • ブログの黎明期から現在・未来まで
    • 読みもの
  • 「欠陥ソフトウェアの経済学」
    • 警鐘
  • 「(?)」
    • 同じテーマについて組み込みの話
  • 「(?)」
    • 情報セキュリティ
    • 暗号強度だけではなく、プロトコル自体の欠陥について
  • 「リンカ・ローダ実践開発テクニック」
    • 細かいところを知るために
  • 4月
    • 「Webを支える技術」
      • URLについて解説。自分が2010年に唯一担当(稲尾)
    • 「(?)」
      • Xperiaのガイドブック
    • 「(?)」
      • iPadの使い方
    • 「(?)」
      • Illustratorの使い方
    • 「(?)」
      • Android SDKの本
    • 「続ハイパフォーマンスWebサイト」
    • 「Zabbix統合監視「実践」入門」
    • 「たのしいRuby 第3版」
    • 「(?)」
      • ケータイサイト制作、職人芸
      • サイト運営や企画なども
  • 5月
    • 「Xpediaビジネス活用術」
    • 「iPad Fan」
    • 「(?)」
      • 電子書籍と出版社をとりまく状況
    • 「IT業界を楽しく生き抜くための「つまみぐい勉強法」」
      • 勉強法の本
      • 勉強会に参加している人は7章を(著者メッセージ)
    • 「(?)」
      • Android 2.0に対応
      • 網羅的
    • 「iPadスターティングガイド」
      • 使い方
    • 「電子書籍の基本からカラクリまでわかる本」
      • 表紙はいまいちだが中身はわりとまとも
      • でも時代の流れ
    • 「twitter APIプログラミング」
  • 「(?)」
    • Aruduinoを作れる人向け
  • 「(?)」
    • 素材集
  • 6月
    • 「(?)」
      • Photoshopの本
    • 「(?)」
      • iPadの本。使い方の本が出た
    • 「ぼくらのScala」
      • Scalaの本がいろいろ出た
      • この本はbetter Javaに特化した本
    • 「Scalaプログラミング入門」
    • 「デコンパイリングJava」
    • 「(?)」
      • iPadのカルチャー
    • 「セマンティックWebプログラミング」
      • 理論ではなく実際のプログラミング
    • 「ネットバカ」
      • タイトルはひどいが中身はすごく面白い
      • 情報量が増えて思考力が散漫になる現象
        • 解決はない
      • 参考文献表がすごい
    • 「コンピュータが仕事を奪う」
      • 年末に出た本
      • 同じような問題提起
      • コンピュータが出ても残る仕事。けっこう意外
    • 「グーグルで必要なことは、みんなソニーが教えてくれた」
      • ソニーへの愛情とダメ出しで揺れる感じが面白い
    • 「(?)」
      • 復刊
    • 「(?)」
      • 第5世代コンピュータで本当にやりたかったことを総括
    • 「(?)」
      • 自伝。国会図書館の問題のバックグラウンド
  • 「なれる! SE」シリーズ
    • ラノベで社会人ネタは地雷?(矢野)
  • 「(?)」
    • ブラッディマンデーの流れ(矢野)
  • 電撃PCシリーズ
    • できるシリーズがおかしくなったような…
    • いかにもアスキーメディアワークス
  • 7月
    • 「(?)」
      • 開発のしかたがわからない初級者・中級者向け
    • 「「ケータイ国盗り合戦」超攻略ガイドブック」
    • 「KVM徹底入門」
    • 「大規模サービス技術入門」
      • はてなインターンの内容
      • 新旧CTO執筆
  • 「(?)」
    • Javaフレームワークを作る人向け
  • 「(?)」
    • slim3の本。じつはGAEでのデータの扱いについて詳しく書かれている
  • 「すっきりわかるGoogle App Engine for Javaクラウドプログラミング」
  • 「ソースコードを読む技術」
    • 初級者向け
  • 「自然言語処理」
  • 「テキストマイニングハンドブック」
  • 「LaTeX2e 美文書作成入門」
  • 8月
    • 「メタプログラミングRuby」
      • RubyKaigiでRuby本がいろいろ
    • 「(?)」
      • iPhoneのWebアプリ開発
    • 「Emacsテクニックバイブル」
      • イマふうの使い方
    • 「Rubyレシピブック」
      • Ruby 1.9、JRuby対応
    • 「Google Wave入門」
      • 今年話題になった本w
    • 「(?)」
      • pixivの本
    • 「jQueryクックブック」
      • ノウハウ
    • 「AndroidSDK開発のレシピ」
    • 「iPad電子書籍アプリ開発ガイドブック」
      • ちょっと…
    • 「(?)」「(?)」
      • 3DCG
  • 9月
    • 「プログラミングコンテストチャレンジブック」
      • アルゴリズムの本
    • 「Android Hacks」
      • 初心者向け
    • 「(?)」
      • Twitterに関するエッセイ
    • 「すぐにわかる電子出版スタートアップガイド」
    • 「(?)」
      • Evernoteの使い方
    • 「GoodReaderパーフェクトブック」
    • 「WordPress 3 サイト構築スタイルブック」
      • WordPressがCMS的に使われた年
    • 「Google API Expertが解説するHTML5ガイドブック」
    • 「Pocket詳解 HTML5&CSS3辞典」
    • 「よくわかるPHPの教科書」
    • 「HTML+CSSコーディング ベストプラクティス」
      • 著者による食いちがいが逆にリアル
  • 10月
    • 「(?)」
      • iOS4対応
    • 「はじめてのホームページビルダー」
      • まだあるんですねw
    • 「言語設計者たちが考えること」
      • 知らない言語の話も
    • 「(?)」
      • SAI、Photoshop、お絵かき
    • 「基礎からのiOS SDK」
      • バージョンアップごとに
    • 「エンジニアのための図解思考 再入門講座」
    • 「(?)」
      • WordPress
    • 「アメブロをカスタマイズ」
      • こういう本が出ているんですねw
    • 「すべてわかる仮想化大全」
      • 毎年
    • 「パブリックスピーカーの告白」
      • プレゼンのコツ
      • 「時間×人数の時間を奪うことになるからしっかり準備しろ」とか書いてある(矢野)
    • 「Scheme手習い」
    • 「かわいいiPhoneのきほん」
      • 女性向けに(杉山)
      • 女性iPhone本が何冊か出た
    • 「(?)」
      • Web解析
    • 「Redmineによるタスクマネジメント実践技法」
      • Redmineでチケット駆動開発
    • 「リーンソフトウェア開発と組織改革」
    • 「スケーラビリティの技」
  • 11月
    • 「(?)」
      • 出版社がなくなったので駆けこみ需要で売れた本
    • 「パーフェクトPHP」
    • 「入門自然言語処理」
    • 「(?)」
      • Android 2.3
    • 「スマートフォンのためのHTML5アプリケーション開発ガイド」
      • Webアプリ
    • 「VMware徹底入門 第2版」
    • 「できるポケット Facebookをスマートに使いこなす基本&活用ワザ150」
    • 「Scalaで学ぶ関数脳入門」
      • 初心者の導入
    • 「プログラミングClojure」
      • 関数型つながりで
    • 「関数型プログラミングのたのしみ」
    • 「記号と再帰」
      • プログラミングをふまえた記号論。人文系向け
    • 「コンピュータ設計の基礎」「プロセッサを支える技術」
      • プロセッサの設計のつっこんだ話
    • 「テクノ手芸」
      • Makeつながり
  • 12月
    • 「プログラマが知るべき97のこと」
      • 来週トークセッション
    • 「ゲームコーディング・コンプリート」「ゲームエンジン・アーキテクチャ」
    • 「人月の神話」
      • 横書き
    • 「デザインのためのデザイン」
      • こちらのほうが重要
    • 「HTML5+CSS3で作る 魅せるiPhoneサイト」
    • 「GIGAZINE 未来への暴言」「号外!!虚構新聞」
      • 人気サイト
    • 「パーフェクトソフトウエア」
      • ワインバーグ
    • 「反復学習ソフト付き 正規表現書き方ドリル」
    • 「ライフログ入門」
      • ライフログが話題になる前から実践していた人
      • そこかしこにキラリと

「実録・アメリカ超能力部隊」

 2010年秋に公開された映画「ヤギと男と男と壁と」はヘンな映画だった。1980年代に米軍の超能力部隊で活躍していたと自称する初老のヒッピー崩れと戦時下のイラクを旅する話なのだけど、(設定として)超能力があるのかないのか、米軍超能力部隊があったのかなかったのか、あるいはこれはコメディなのかシリアスな話なのか、などが最後まで謎で、どちら側に肩入れしてもおさまりが悪く、まるで両側が重なりあっているかのような印象が面白かった。イギリス的センスってやつだろうか(←よくわかってません)。

 その原作である本書も、それにもましてふしぎな印象の「ノンフィクション」だ。

実録・アメリカ超能力部隊 (文春文庫)
ジョン ロンスン
文藝春秋
売り上げランキング: 58675

 たとえば、イラクで投入されたムース状の壁や音楽拷問、ヘールボップ彗星のヘブンズゲート事件は本当だろう。いっぽう、超能力自体は、まあないんじゃないかなと。また、ジョー・マクモクニーグルとインゴ・スワンら超能力捜査官はメディアに登場したけど、ユリ・ゲラーが米軍の超能力部隊で活躍していたというのはフカしなんじゃないかなと思う。が、本書では本当から嘘までの間がグラデーション状に続いていて、どこが本当と嘘の境目かわからないし、誰が本当のことを言って誰が嘘を言っているのかがあやふやになる。

 そして後半では、心理的拷問(?)の実態をさぐるべく著者が突撃する。のだけど、何が起こったのかわけがわからないような事件の真相を探るという、シュールレアリズム小説的な展開に。

 というわけで、超能力や超能力部隊を肯定する結論や否定する結論が欲しい人にはおさまりが悪い本なんじゃないかと思う。けど、自分としては面白く読んだ。

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly