本を読む

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

「WIRED」vol.2

WIRED (ワイアード) VOL.2 (GQ JAPAN2011年12月号増刊)

コンデナスト・ジャパン (2011-11-10)

 ポール・グレアムによるVC「Yコンビネーター」のブートキャンプを、スティーヴン・レヴィがレポートしているということで、読んだ。

 採用から開発、投資家にプレゼンする“デモ・デイ”まで、分量は長くないんだけど、生き生きと、ポイントを押さえつつ描写。「採用ではサービスより人物を見る」「途中でプランを変更することもよくあるし、それで成功した例もある」「最後の1週間は徹底的にプレゼンを叩き込む」といったあたりが印象に残った。「それだ、その瞬間にみんな自分のブラックベリーに目を落とすぞ!」というダメ出しのシーンを拾って描くところとか、うまいなあ。

 ちょうど同じ頃にTechCrunchで「シリコンバレーで起業した日本人が語るスタートアップガイド2――シリコンバレー流の資金調達」を読んだので、相互に理解が進んだ。

 ほかの記事では、麻薬密売組織が独自に開発した潜水艦の話が面白かった。こういう、自分ではまったくマークしていなかった方向の記事が入ってくるのが、自分にとっての雑誌の利点だなあ。同じ号の記事「そして雑誌はやがてアンバンドル化する」とは逆だけど。

「Software Design」12月号

 表紙に「うんこ」の文字が載った号。「うんこ演算を支えるUnkoScript」という記事で、子供の計算問題をうんこを題材にして出すアプリ「うんこ演算」についての解説だった。問題のテンプレート用DSLとして、カッコによるS式で演算子を前置して記述し、パースしてコンスセルによるリストを作るという、どこかで聞いたような仕様を採用してるとか。文章もユーモラスなもので、「三度の飯よりうんこが好き」とか、電車の中でリアルに噴いてしまった。

 連載インタビュー「Software Designer」は、Herokuの共同創業者でCTOのAdam Wiggins。最近は、すぐにデプロイできることや、言語コミュニティ間の交流を意識している、と。あと、前置きによると、「Heroku」の由来は「hero」+「haiku」なんだとか。

 第1特集の「Mac活用術」は、OS X Lionの内部的な新機能や、VMware Fusion、テキストエディタなどを解説。クックパッド社開発陣のMac活用事例もあった。

 「イケてるGitの使い方」は、現在Subversionを使っている現場を想定して、SubversionやほかのDVCSとの比較、git-svnでSubversionリポジトリのローカルリポジトリを作ってgitで管理する方法、Redmineとの連動などを解説していた。

 連載「Ubuntu Monthly Report」は、事実上、Ubuntu 11.10の紹介記事だった。

 dankogai氏連載は、Unixの歴史と最近物故された大物たちをからめるというもので、こういう独自のコンテキストを組み立てるのがやはりうまいと思った。

 連載ではほかに、新連載「mixiエンジニアがおくるソーシャル開発実践講座」がスタート。OpenBlockS連載が最終回で、CUPSサーバー。OpenFlow連載は、Tremaを使って実際にコントローラを作るサンプル。Hack for Japan連載は、Hack for Japanから生まれたプロジェクト達の紹介。Emacs連載は、Mewのユーザーインターフェイスについて。アメーバ連載は、ひきつづきChefとVagrant。Objective-C連載は、ひきつづきiOS 5のマルチスレッド。iPhone開発連載は、スタティックライブラリ(*.a)。Android開発連載は、ホームアプリの中身。

YAPC::Asia Tokyo 2011に行ってきた(10月に)

 すでに1か月半前の話ですが、Perlのお祭「YAPC::Asia TOKYO 2011」に行ってきました。

 モノを実際に作って動かしている話しとか、そのための運用とか、現場の人が自分のやっていることを紹介するセッションが多かったと思います。

 こんな時期にブログに書いても、もはや自分しか得しない気がしますが、とりあえず自分メモとして。

1日目

オープニング(941)

 今回はいろいろな面で最大規模だったという話で、伸びてるなあと。あと、交流をテーマにしているとの話もありました。

Perl 5.16 and beyond(Jesee Vincent)

 Perlのリリースサイクルを作って10月31日にPumpkingを引退したobra氏のセッション。「ようやくビジョンを語れるようになった」ということで、「Perlは変わり続ける」「Perlのコアをコンパクトにする。どんどん外部のモジュールにする」「“use v5.14”はPerl 5.14以降という指定だったが、それでは5.30とかで動くとは限らない。“use v5.16”は、Perl 5.16そのもので動くという意味にして、後方互換性をできるだけ保つ」という話が印象的でした。

Carton(miyagawa)

 YAPC::Asiaといえばのmiyagawaさんのセッション。アプリをほかの環境にデプロイしたときにモジュールのバージョン違いで困らないように、使っている全モジュールのバージョンを固定する「Carton」というしくみを開発したという紹介でした。RubyのBundlerを参考にしたとのことです。

 「carton install」でMakefile.PLからモジュール情報を抜き出してlocalにインストールしつつ依存モジュールも含めてcarton.lockファイルにJSONで記録、「carton exec」でその環境でアプリを動かすというのをデモしていました。Twitterでも、「使いたい」という声が多数並んでいました。

Perlプログラマのためのスマートフォン開発ガイド(naoya)

 Webアプリの技術でスマートフォンアプリを作るプラットフォームとして、PhoneGap(HTMLでネイティブアプリ)、Titanium Mobile(ネイティブアプリ)、ScriptingLayer for Android(まだおもちゃ)、Nodeなどを紹介していました。

AnyEvent, Coro, IO::AIO - a good team(Mark Lehmann)

 Nodeのベースになっているlibev&libeioや、AnyEvent、Coroなどの作者のmlehmann氏のセッション。勝手に大学の先生っぽい人を想像してましたが、どちらかというとオタクっぽい感じで、そのへん親近感を覚えました。

 そんな感じで、たくさんのアニメのファイル(大容量+多数)をダウンロードさせるサーバーを立てようとして既存のサーバーを試したけど使えるものはなかった、じゃあ自分でいうことで、CoroとかAnyEventとかIO::AIOとかイベント駆動で作ったとかなんとか。ときどき10秒止まるのでおかしいなーと調べたら、ノンブロッキングのはずがOSがファイルを先読みしててブロックしたという話なんかもありました。

 あと、イベント駆動はコールバックスタイル(継続渡しスタイル)で制御の反転になるけどCoroなら普通に書けるぜとか、PerlのiThreadはプロセスみたいなものでスレッドじゃないからCoroこそがスレッドだとか、IO::AIOはもとはPOSIXのラッパーだけどいろいろesotericなものをラップしてるぜとか、Coro::AIOならIO::AIOを普通のI/Oの書き方で書いて自動変換してくれるぜとか、いろいろ語ってました。

Perlで構築されたサイトの移転(fujiwara)

 カヤックの音声投稿共有サイト「こえ部」を、止めずに、レンタルサーバーから自社インフラに移転した話。一度に動かすとトラブルが起きたときに発生箇所がわからないので一つずつ動かしたとか、DC間をOpenVPNでつないだとか、移行先にDBの子レプリケーションと孫レプリケーションを作ってDC間を切ったら元の子レプリケーションがマスターにしたとか、投稿と参照のFQDNが違ってDNS切り替えのタイミングが違うので404になったときに違うほうのサーバーにフォワードするとか、さすがいろいろ工夫してるなあと思いました。

Mobageオープンプラットフォームの事件簿(zigorou)

 Mobageオープンプラットフォームの障害事例を紹介してました。updateが遅くてデッドロックが多発とか、DELETEが遅くて遅延とか、有名人が何かするたびに負荷がすごいことになるとかの話で、大変だなあと思いながら聞きました。

LT:Perl同人活動(makmaka)

 毎年名物のPerl同人誌「Acme大全2011」の紹介でした。「3rd edition」→「さあどうでしょう」は、言われなければわからなかったw

(tokuhirom)

 WebアプリケーションフレームワークのAmon2 3.0の解説でした。

LT:(hakobe932)

 WebService::SyoboiCalendarで関西のアニメ放送予定をチェック、という話でした。

LT:スポンサーセッション - カヤック

 同日発表された「Perl道場」を紹介していました。

LT:(Yappo)

 IRCボットフレームワークApp::Ikachanの紹介でした。翌日のLTに続く。

LT:(charbar)

 CPANに「倉庫番」の盤面パーサーはあっても実際のゲームはなかったので、URLを指定してパースして遊べるゲームを作ったという話でした。デモもありました。

LT:(egopro)

 去年のYAPCに参加した影響で作ったというSendai.pmの活動紹介でした。

LT:スポンサーセッション - スカイアーク

 北海道のIT勉強会の紹介でした。

LT:(issn)

 Nagoya.pmの活動紹介でした。

LT:(Mayumi Tayumi)

 6Aの広報さん。Perlプログラム「iSteve」が会場で大ウケでした。

LT:(karupanerura)

 Class::Accessor*でアクセサを作ると呼び出しコストがかかるので、普通のアクセスを制約する「Class::VirtualAccessor」というのを作ったという話でした。Variable::Magicでhookしているとか。

LT:日常業務にPerlを使う(turugina)

 Webベースの勤怠管理システムをPerlで攻略するという話でしたw

LT:スポンサーセッション - リクルートメディアテクノロジーラボ

 プログラミングコンテスト「Mashup Award 7」の紹介でした。

LT:(岡部恵一)

 Perl商標問題と、それに対するJPAの戦いの報告でした。

LT:Perlで次世代ゲーム開発(keroyonn)

 ssh端末のフォントを極小にしてドットに見立てて8bitゲームふうのアクションゲームを作ったということで、実演もしてました。すげー。

LT:ぼくたちのPrl Module管理(Kosuke Arisawa)

 perlbrew+darkpanの紹介でした。

LT:(nekokak)

 DBIx::Handlerなどの“薄い”ORMの紹介と考察でした。

LT:ISUCONやった話(tagomoris)

 集まってその場でWebアプリケーションをチューニングする「ISUCON」を開催した報告でした。

2日目

続 Unix Programming with Perl(Kazuho Oku)

 去年に引き続き、Unix系OSのシステムコールがらみのトラブル例と、トラブルにはまらない心得の解説でした。今回は、子プロセスからのデータをパイプで受け取る場合の問題と、シグナルをチェックするタイミングの問題について。

 パイプについては、子プロセスが入力待ちになる問題や、読まないでいるとパイプのバッファサイズ制限に引っかかる場合がある問題、標準エラー出力の問題を指摘し、「テンポラリファイルを使うほうが楽」とまとめていました。シグナルについては、トラップルーチンで立てたフラグをチェックするタイミングによっては大きな処理(sleep)の後に回されてしまう問題、POSIX::pselectもあるが、OS XやAndroidではpselectの実装がおかしい問題などを指摘し、sleepのかわりにselect()を使う回避策などを紹介していました。

マニアックなキャッシュ利用術(Yujji Shimada)

 Mobageオープンプラットフォームの数十億PV規模で起きたmemcachedの問題とその対策の紹介でした。コネクションタイムアウトなどでキャッシュが更新されていないことがあるのでsetやdeleteの戻り値を見る、いろいろなアプリがキャッシュするのでworkerにまとめる、keyの分散が偏るのでkeyにsuffixを付ける、内部向けDNSでDBの負荷分散をしているのだけどPVごとにDNSルックアップが発生するので結果をmemcachedにキャッシュする、外部ドメインにアクセスするときDNSルックアップをキャッシュするのにクライアントとしてFurlを使う、などの話でした。

ぼくのかいがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく(cho45)

 後にリリースされた「はてなブログ」のためのWebアプリケーションフレームワークの話でした。大規模で長期的にメンテナンスするシステムのためには、「限りなく薄いフレームワーク」が求められる、と。で、PSGIを出して「最小のフレームワークは書かないフレームワーク」「共同開発に必要なのは共通の実装ではなく共通の設計指針」と。そのほか、「ドメイン特化にならざるをえない」「危険なことをするのにコストがかかるように」「3回コピペしたら抽象化」などの言葉も面白いと思いました。

画像Hacks (yusukebe)

 画像を操作するライブラリのImagerで、「幕末写真フィルタ」「Instagram風」「Facebookカードを作る」といった応用例を見せていました。また、画像認識と組み合わせて「キャプチャ破り」や「miyagawanaize」、さらにOpenCVと組み合わせたOppai-Detect(笑)までやってみせていました。

Perlで無理ゲーム攻略 (TAKESAKO)

 WindowsアプリケーションをWin32::GuiTestで操作する話でした。キーストロークを送ったり、ウィンドウタイトルをあいまい検索したり、マウスを動かしたりといったのをやってみせた後、マインスイーパーを自動で解く「Acme::MineChan」を解説してデモして、会場を爆笑と驚愕の渦に巻き込んでました。苦労した点として、画像マッチの素材として「8」を出すのに苦労したとか、暴走するとキーボードやマウスが奪われていて止められないのでUSBメモリのautorunでtaskkillを実行とかいうエピソードも。

闇のEメール伝説(Ricardo Signes)

 CPANの数々のEmail処理モジュールの作者による、「本当は怖いEメールのフォーマット」の話。ヘッダの折り返し方法とか、空白の扱いとか、コメントの扱いとか、日時の表記とか、よくこんなのパースできるなあという感じで、モジュールに感謝。あと、MIMEの恐怖の話については、日本人は英語圏ほど意外性を感じにくいのかもと思った。

Evlution of API with blogging(Takatsugu Shiegeta)

 Six Apartのcomewalkさんによる、ブログの歴史のふり返り。HTMLから、1つの枠で中身を変えるブログになり、双方向性、メタ情報(フィード)、自動検出、投稿、外部へ(pingやOpenSEarch、OpenID、PUSH)などと進化してきて、2004年ぐらいから進化が止まっているのではないかということでした。また、手をつけなくてはいけないこととして、インポートとエクスポートが挙げられていました。

少人数のWebアプリ開発(aloeight)

 会社の小規模なCGIシステムが、毎年のYAPCに影響されてmod_perlやPlackなどに変わっていった過程の報告でした。それだけでなく、「ファイル名による人力バージョニング」「Excelでタスク管理」から、SubversionやTracの導入の変化が、会場の興味を惹いていたようです。テストを書くのをチームに習慣づけさせるために「今日はテスト書いたわー」とミサワ風にアピールする話もw

OtoPerl(Haruka Kataoka)

 異色のセッションで、プログラムで波形などをいじって音を合成し、音楽を演奏するシステムの話でした。それ系のライブでは、ステージでコンピュータを操作しているとメールでも見ているようにしか見えないという「メールチェックライブ問題」があるんだとかw。ではその場でコードを書いて即興演奏しようという話でした。音を合成するロジックもPerlを内部DSLとして書いて、それをクライアントからHTTPで音声合成サーバーに送ってオンザフライで演奏を変えられるそうです。実際に、その場でコードのパラメータやプログラムを変更してデモというかライブをやってみせてました。

ターミナルで8ビッット風ゲーム (keroyonn)

 1日目のLTでもやっていた、ssh端末のフォントを極小にしてドットに見立てて8bitゲームふうのアクションゲームを動かすGames::BeLike::EightBITの解説とデモでした。30fpsぐらい出るんだとか。やっぱりすごい。

LT:Emacs, Perl Async(kiwanami)

 EmacsでGoogleカレンダーふうのカッコいいカレンダーを作ったり、3Dマルチプレイヤーゲームを作ったりしてEmacsユーザーを驚かせているkiwanamiさん。会場でも、あれがEmacsか、という声が。Perlネタは、EmacsからDBにアクセスするのにPerlを使う話。

LT:Perl→CL→Perl(nitro_idiot)

 はてなで働くCommon Lisp使いのnitro_idiotさん。PerlとCommon Lispの遍歴と、そこから思ったことを発表していました。「“Modern Perl”は毎年変わるので、ついていくのが大変」という言葉が印象的でした。

LT:スポンサーセッション - ガイアックス

 福岡はいいところだよ、都会だけど東京ほど混んでないし、ちょっと行くと自然もあるし、美人が多い(と嫁写真を披露w)、とアピールして、福岡支社を作るので募集中、という話でした。

LT:bouneHammer(azumakuniyuki)

 バウンスメールの解析ツール「bouneHammer」の紹介でした。

LT:スポンサーセッション - ライブドア

 woremacxさんによる、ロケタッチの紹介でした。

LT:(Yappo)

 前日のIRCボットフレームワークの話に続いて、社内でのサーバーの通知情報などをIRCに集約して仕事効率化、という話でした。

LT:(Naoki Tomita)

 Perlモジュール本を書いた富田さん。Acme以外の面白モジュールをいろいろ紹介していました。「Moose」を簡略化して「Moo」→「Mo」→「M」とかw。

LT:File:::Zgob(tokuhirom)

 zshのように「**」が使えるzglobと、その他最近開発した多数のライブラリの紹介でした。すごい数。

LT:スポンサーセッション - mixi

 雑誌でも記事を書いていた「静的解析」への取り組みを紹介していました。社内で開発したプログラムの「負債」度を測る指標だそうです。

LT:(charsbar)

 毎年恒例、CPAN authorトップ10の発表でした。

LT:MySQLでMessagePack(kamipo)

 MySQLのレコードにMessagePack形式でデータを入れたのを検索する、MySQLプラグインを書いた紹介でした。

LT:エロサイトの裏側(yusukebe)

 個人によるエロサイトの開発と運営で学んだ技術的経験の話でした。

LT:(takesako)

 通常のセッションでやった「Acme::MineChan」を、2分で紹介しデモして、みごと解いてみせ、喝采を浴びてました。

Managing A Band Of Hackers(hidek)

 基調講演としてDeNAでハッカー集団を束ねるマネージャーとしての心得を語っていました。チームは必要であり指揮者のようにマネージャーも必要、という存在意義の話から、エンジニアの現場をマネージするにはエンジニア経験のある人間でないといけないという話、丸投げではなく任せるという話、クセのあるハッカーたちをまとめる心得、などについての話でした。

閉会式 (Daisuke Maki)

 ベストスピーカー賞を発表。あと、「来年(良いほういも悪いほうにも)どうなるかわからない」と話していました。

Clojureのhttp.async.clientを試した

 Clojureの半日ハッカソン「Tokyo.clj」に参加して、ClojureのHTTPクライアントライブラリであるhttp.async.clientを初めて試しました。以下、メモまとめ。

背景

 ClojureのHTTPクライアントライブラリは変動が激しいようです。http.agentが外れるとか、clojure-http-clientはドキュメントに「this library is deprecated」と書かれているとか、さて、どれがいいんだろうと悩みます。

 clojure-http-clientのドキュメントには、clj-httpかhttp.async.clientがいいんじゃないか、と書き添えてあったので、この2つが気になっていました。特に私の目的が、複数同時接続なので、非同期リクエストのhttp.async.clientを試してみることにしました。

なにもの

https://github.com/neotyk/http.async.client

 イベント駆動型の非同期HTTPクライアントで、Nettyベースだそうです。サンプルやAPIなどを見るかぎり、TwitterなどのStreaming APIとかに力を入れているような印象です。

まず単純な例

 とりあえず単純な例から。まず、lein newして、project.cljの:dependenciesに追加します。

[http.async.client "0.3.1"]

 src/hoge/core.cljに、ほぼサンプルからコピペで書きます。

(ns hoge.core
  (:require [http.async.client :as client]) )

(defn -main []
  (with-open [client (client/create-client)]
    (let [response (client/GET client "http://www.google.co.jp/")]
       (client/string response))) )

 ドキュメントによると、client/GETではブロックせず、client/stringで内容を見に行くときにブロックするそうです。

 実行してみます。

$ lein deps
$ lein run
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
"<!doctype html><html><head><meta http-equiv=\"content-type\" (以下略)

 無事、コンテンツが表示されました。冒頭にSLF4Jの「ロガーが設定されてないよ」というメッセージが出てますが、ここでは置いておきます。

同時接続を試す準備

 同時接続を試すために、「時間のかかるWebサーバー」をローカルで動かします。とりあえずRingで。

(ns slowserver.core
  (:use [ring.adapter.jetty]) )

(def sleep-sec 5)

(defn app [req]
  (do
    (Thread/sleep (* sleep-sec 1000))
    {:status  200
     :headers {"Content-Type" "text/html"}
     :body    "Hello World from Ring"} ))

(defn -main []
  (run-jetty app {:port 8080}) )

 READMEのサンプルにThread/sleepを入れただけです。

同時接続を試す

 localhostの8080番ポートに10接続かけてみます。src/hoge/core.cljはこんな感じ。

(ns hoge.core
  (:require [http.async.client :as client]) )

(defn string-now [x]
  (do (println (. System (nanoTime)))
      (client/string x) ))

(defn -main []
  (with-open [client (client/create-client)]
    (let [sq (map #(client/GET client %)
                  (repeat 10 "http://localhost:8080/") )]
      (println "Now Loading...")
      (doall (map string-now (doall sq))) )))

 10個の(同じ)URLをmapでclient/GETにかけてから、またmapでclient/stringにかけます。その直前に経過時刻を表示することで、各client/stringが呼ばれる間隔を調べます。

 実行してみます。

$ lein run
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Now Loading...
18216574767690
18221629991057
18221630627241
18221631077019
18221631303585
18221636776904
18221637166409
18221637382289
18221637587832
18221637784994
("Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring" "Hello World from Ring")

 1リクエスト目のclient/stringでブロックしたあとは、2リクエスト目以降はさくっと返ってきています。同時接続しているように見えます。

コールバック版

 非同期リクエストなのでコールバックインターフェイスもあるかと思って探したところ、client-request-streamがコールバックを取るようです。

 同じように試してみます。

(ns hoge.core
  (:require [http.async.client :as client]) )

(defn start-request [client url]
  (let [p (promise)]
    (client/request-stream client :get url
                        (fn [state body]
                          (deliver p (str body))
                          [body :continue] ))
    p ))

(defn deref-now [x]
  (do (println (. System (nanoTime)))
      (deref x) ))

(defn -main []
  (with-open [client (client/create-client)]
    (let [sq (map #(start-request client %)
                  (repeat 10 "http://localhost:8080/") )]
      (println "Now Loading...")
      (doall (map deref-now (doall sq))) )))

 コールバック関数からのやりとりにpromiseを使ってみました。

 実行すると、client/GETのときと同じような動作になります。

 ただ、Content-Length:が0だとうまくいかないとか、ちょっとクセがあるようです。いろいろ調べてみましたが、やはり、名前のようにStreaming APIで使うのに都合がいいように作られているようで、そうでない用途なら素直にclient/GETを使ったほうがよさそうです。

「新仮面ライダーSPIRITS」5巻

 舞台を青森に移してスーパー1の苦闘が続く。オリジナルキャラの義経がいい味出してるなぁ。村枝アキニが初期からよく出すタイプのキャラの発展形なんだけど。そうかアレか。

 いちばんのキメのコマは、3人同時変身。あと、泣かせ所はトビラ絵かな。

「日経Linux」2011年12月号

 新着情報のコーナーで、Ubuntu 11.10のレポートを3ページだけ書いたので、遅ればせながらご報告。内容は、GUIの変更やパッケージのバージョン、multiarchあたり。

 自分の記事はさておき、全体を見ると、パーソナル、システム構築管理、ガジェットの3つの柱のバランスを意識的にとってるのかなと思った。

 パーソナル系では、特集1が「9人のLinux最強秘書」と題して、メディアサーバーを中心とした利用シーンに、UbuntuのZeitgeistからのキーワード抽出、Zabbix、アクセスログ解析、Capistrano、Yahoo! Pipes、Twitterボット、AndroidのGPSなどを解説している。特別企画はH.264のコーデックやBlu-ray化。

 システム系でいうと、先月号に続いて「「カーセンサーnet」リニューアル奮闘記(後編)」が面白い。Webサーバーのボトルネックを延々と追っていく話で、今回はOProfileやSystemTapでカーネルの中を調べて、NFSによるBKLの問題にたどりついている。また、特集2がSambaで、Samba 3.6あたりをSMB2を中心に解説している。Linux認証連載が、RHEL 6で採用されたSSSDやIPAのあたり。OSS-DB試験の連載は、SQLのDMLの基礎あたり。LPIC連載は、サービスまわり。

 ガジエット系でいうと、特集3が、WM8650ベースの中華Padのroot取りや改造ファームウェア、Debian化。Android 3連載は最終回で、Compatibility Library周辺の心得について。Titanium Mobil連載は、サンプル集Kitchen SinkをもとにしたTwitter API処理。

 そのほかでは、マンガ「シス管系女子」と「やさしいLinux」の2連載がどちらもvi(vim)の初心者向け入門。美女Linux連載はフォーマットが会話形式になっていた。プリンタ連載は、LinuxとWindowsの組み合わせでリモートプリントする場合のそれぞれの組みあわせごとの解説。Upstart連載は、すでに用意されている設定ファイルの解説と、実際に自分で設定ファイルを作ってみるところ。Linuxカーネルの新機能連載は、KVMのQEMUにかわるNative Linux KVM tool。

「WEB+DB PRESS」vol.65

WEB+DB PRESS Vol.65
WEB+DB PRESS Vol.65
posted with amazlet at 11.11.07
天尋 左石 柄沢 聡太郎 小野 修司 ミック みやけん 長野 雅広 おにたま 中島 聡 清水 亮 角田 直行 はまちや2 大塚 弘記 松信 嘉範 板垣 貴裕 福岡 博 大和田 純 白土 慧 太田 昌吾 じゅんいち☆かとう
技術評論社
売り上げランキング: 668

 特集「ビッグデータ時代のDB設計入門」と特別企画「[最新]PostgreSQL 9.1」のデータベース記事2つが圧巻。前者は大規模サイトでのRDBMSについて、インフラから設計、チューニングまで解説している。後者はPostgreSQL 9.1の新機能や変更点についてまとめている。

 特集1の「Webエンジニアが知るべきインフラの基礎知識」は、開発系エンジニアのためのインフラ基礎知識。ネットワークから監視すべきポイント、ツールまでポイントを押さえていて、開発系エンジニアでなくても参考になる。

 特集2はPHPフレームワーク。Silex知らなかった。

 連載陣は、Ruby連載がRails 3.1。JavaScript連載は、CofeeScriptから学ぶJavaScriptの落とし穴。Java連載はJava SE 7の新機能。.NET連載はエンドユーザープログラミング環境のLight Switch 2.11。SQL連載は、何でもSQLなど自分の得意なレイヤーで解決してしまおうとする「スーパーソルジャー病」(耳が痛い…)。スマートフォン連載はおサイフケータイ対応Android端末での1対1のメッセージ通信。Perl連載はログの出力。あと、「分散KVS okuyama実践入門」が新連載。

OSC 2011.DBに行ってきた

 オープンソースカンファレンスのDB版「オープンソースカンファレンス2011.DB」に行ってきました。MySQL・PostgreSQL・Firebirdの3つを中心に、なぜかHadoopも混ざりながら、青山のオラクルでセミナー形式で開かれました。

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

PostgreSQL 9.1 and more(永安悟史・藤井雅雄)

(遅刻のため永安氏のパートをほぼ聴けず。残念)
レプリケーションの話(藤井氏)
  • 9.2は来年夏ごろリリース予定
  • カスケードレプリケーション
    • スレーブ→スレーブ
  • バックアップ
    • pg_basebackupコマンド
    • スレーブからでも
  • pg_receivexlog
    • マスターからWALを受信し続けるクライアントツール
    • PosgreSQLサーバーを起動していなくてよい
    • WALの二重化など
  • WEB+DB vol.65、PostgreSQL 9.1の特集
  • 日経SYSTEMS 2011/11「こちら検証ラボ」
  • Q: 最近の面白い事例
    • A: いろいろなところで使われている
    • これから面白いのは、NoSQLとの組みあわせか
    • 知っている例では、メジャーなパッケージソフト、クラウド化
      • テーブルスペース1万、スキーマ1万とか

OSSDB MySQL(とみたまさひろ・須藤巧平)

とみた氏
  • MySQLはOSS
    • 「真のOSSとはいえない(キリッ」発言w
    • 買収されても大丈夫w
  • MySQL 5.5からcmake
  • 開発版 5.6
    • InnoDBオプティマイザ統計情報の永続化
      • 統計情報をシャットダウン時にディスクに保存
    • デッドロックをエラーログに出力
      • 明示的なパーティション選択
    • 特定のパーティションからselectなど
    • binlogの容量削減
      • レプリケーション情報
    • 遅延レプリケーション
      • CHANGE MASTER TO MASTER_DELAY=n
      • 操作ミス等でのデータ喪失に対応できる
  • 開発版
    • http://labs.mysql.com/
    • InnoDB全文検索
      • 日本語非対応
    • InoDB memcachedインターフェイス
      • InnoDBにMemcachedプロトコルでアクセス
  • マルチストレージエンジン
    • テーブル単位
  • Q4M
    • MySQLでメッセージキュー
    • ENGINE=queue
  • Spider
    • sharding
  • vertical Partitioning
        • カラム単位で縦分割
  • Groonga
    • 全文検索
須藤氏
  • groongaストレージエンジン
  • 高速な全文検索
  • 高速な位置情報検索
  • リアルタイム更新
    • 追加が高速
      • TwitterのTweetを追加して検索、など
    • 参照ロックフリー
      • 検索していても更新できる
  • トランザクションなし
    • groongaストレージエンジン+InnoDBで
      • 全文検索を横取り
      • 検索はgroongaストレージエンジンに近い
      • 更新速度はInnoDBぐらいになってしまう
  • ALTER TABLE未サポート
    • 次リリースで
  • MariaDBにバンドルされることになった(拍手)
  • Q: MySQLはCHECK制約がない。今後は
    • A: 把握していない。Oracleさんなら知っているかも

Windowsで使うFirebird(木村明治と愉快な仲間)

  • 木村氏と林氏の漫才形式
  • なりたちからしてWindowsに強い
  • DBとは
  • データ保存をすると
    • 最初はテキストファイル
    • データが増えると遅くなる
    • 検索
    • 排他制御
  • ORDB(Object oriented database)
    • PostgreSQLも実はORDB
      • パーティショニングは実は表の継承でやっている
    • まあ聞かなくなった
  • Firefoxと間違われるw
  • WorldWideではMySQL vs Firebird
  • Interbase 6がオープンソースになってFirebirdに
  • アプリケーションインターフェイス
    • JDBC
    • Borland
      • Delphi
    • Perl、PHP、Pyuthon、Ruby
    • ODBC
    • .NET Provider
  • アプリケーション組み込み(インプロセスライブラリ)
    • 同じ製品でCSと組み込みがある
      • MySQLも
    • DBファイルが単一ファイル構成
      • Sybase Anywareも
  • プロセスモデル、スレッドモデル、インプロセス
    • 組み込みのときは、アプリケーションインターフェイスはそれ用のライブラリで
  • InterBase 6.0が一時OSSになったときにブランチ
    • それぞれ発展
    • 主なツールは両対応
  • 現在2.5.1
    • 3.0がα版
      • プロセスモデルをやめてスレッドに一本化?
      • DBごとにセキュリティのDBを持てる
  • .NET Providerが熱い
    • .NETはDelphiの後継と考える人も
  • FLAP(Firebird + Linux + Apache + PHP)
  • パッケージにしたときにライセンス料が発生しない
  • ブラジルではFirebird専門のカンファレンスに大勢集まる

ioDriveとInfiniBandを利用したDRBDによるリアルタイムレプリケーション(サードウェア岩崎・滝澤)

  • DRBD
    • ネットワーク越しのミラーリング
    • ブロックデバイスを複製
    • バックグラウンドでの差分同期も
  • ネットワークのレイテンシよりHDDが遅かったという例も
  • Fusion-IO ioDrive
    • PCI Express直接接続
    • DBなど
  • InfiniBand
    • HPCで使われてきた
    • 低レイテンシ
    • 広帯域
    • IP over IB
  • 検証
    • SAS HDD、SATA SSD、ioDriveの3つを比較
      • ライトバックキャッシュの有効無効も
    • HP Proliantサーバー
    • RHEL 6.1
    • DRBD 8.3.11(検証当時の最新版)
    • PostgreSQL 8.4.7
  • HDはInfiniBandでDRBDしてもほぼ変わらない
  • ioDriveで10%程度の低下
  • SSDをRAID0にしてもスループットがあまり速くならなかった
  • IB + ioDrive + DRBD
    • スケールアウトではなくスケールアップによるトータルコストの削減
    • 安全性の高い高速データベース
  • Q: IBは直接? スイッチで?
    • A: 直接つないだ。OpenSMというデーモンを使った。
    • カードが安くなっているので、コストメリットがある構成。
    • IBスイッチが8ポートで20~30万
  • Q: ファイルシステムは
    • A: ext4。デフォルトの状態で、ファイルシステムのチューニングはしていない
  • Q: IBの帯域はどのぐらい使ったか
    • A: CPUに依存する。この環境では10GBぐらいしか出ない。
    • 違うマシンで15~16出た。
    • CPUをふりきった。CPUがボトルネック
  • Q: ioDriveの書き込み回数の制限をDRBDで回避? でも両方同じ制限?
    • A: どのぐらいもつかFusion-IOに聞いた。1日4GBの書き込みで10年以上、というデータがあるらしい。
    • 書き込み上限に達した場合については検証していない
  • Q: HDD + Ethernet
    • A: 理論上125MB/s、イーサネットがボトルネック
    • 10G、SATA+RAID 0でディスクがボトルネック
    • IBにした理由は、10Gで速度が出なかったから
    • openibdは起動するとカーネルパラメータ(送受信ウィンドウとか)を勝手にチューニングしてくれる

PostgreSQL 9.1とpgpool-II 3.1(SRA OSS 北川俊広)

  • pgpool-II
    • アプリケーションとPostgreSQLの間
    • slony-I(トリガーベース)と併用可能
  • アプリケーションサーバーと同じマシンに同居させることが多い
  • アプリにはPostgreSQLとして見える。意識しない
  • 遅延を考慮したロードバランス
    • delay_thresholdの値を超えたホットスタンバイサーバーには参照クエリを投げない
      • 古いデータが返るのを防ぐ
    • トランザクション内の参照クエリもロードバランス
    • トランザクション内で更新クエリが発行されたら以後の参照クエリはプライマリに
  • 自動フェイルオーバー
    • ダウンを検出してフェイルオーバー
      • クエリを投げたとき
    • 定期的なヘルスチェック
    • フェイルオーバー時にプライマリに昇格させる
      • フェイルオーバー時に実行するコマンドを登録できるので、そこで指定
    • オンラインリカバリ
      • PostgreSQLのリカバリ機能をpgpoolで実行
  • pgpool-II 3.1 変更点
    • 2011年9月リリース
    • insert_lockのロック方法が変更に
      • ~2.3:テーブルロック
      • 3.0:シーケンステーブルの行をロック
        • vacuumなどと競合しない
      • 3.1:insert_lockテーブルの行をロック
        • シーケンステーブルのロックがとれなくなったため
        • このテーブルを作っていないと、~2.3と同じに
    • backend_socket_dirの廃止
    • pgpool_walrecruning()の廃止
    • pool_nodesにノードIDの列を追加
    • nextval()とsetval()がblack_function_list/white_function_listの設定に従うように
      • 排他的な指定なので、片方が空になる
  • 新機能
    • syslog対応
      • ログ機能がなかった
    • application_nameに対応
    • relcache_expireパラメータ
      • PostgreSQLのシステムカタログを調べたキャッシュの有効期限
      • 従来は無期限
    • follow_master_commandパラメータ
      • フェイルオーバー時に実行するコマンドの後に実行するコマンドを指定
    • pcp_promote_nodeコマンド
      • プライマリノードを手動で変更
    • pcp_pool_statusコマンド
      • SHOW pool_statusのコマンド版
    • health_check_passwordパラメータを追加
      • が、未実装
    • pgpool_admin関数
      • SQLから
    • UNLOGGEDテーブルに対応
      • プライマリのみ
    • 中文のドキュメント
    • backend_flagNパラメータを追加
      • フェイルオーバーしないノードの指定
      • コネクションプーリングだけ使っている場合など

OSS「超」入門(野村総研 寺田雄一)

  • 商用ソフトウェアは使用許諾にお金を払う
    • ベンダーが修正
  • OSSもライセンスがある
  • コミュニティ
    • 開発コミュニティ
    • ユーザーコミュニティ
  • 企業がコミュニティを主導する場合も
  • 2007年度のOSS活用ITソリューション規模は1兆円を超えた
    • 基幹系システムでの利用がリード
  • 導入ポイント:価格
  • 心配点:サポート
  • オープンソースの誤解
    • 品質が悪い?
      • ものにもよるが、大規模システムへの導入自責も豊富
    • 高くつく?
      • 慣れの問題
    • エンジニアがいない?
    • 自己責任?
      • 商用サービスもある
  • オープンソースビジネス推進協議会(OBCI)

分散処理基盤Hadoopの概要と動向を紹介(濱野賢一朗)

  • 日本Hadoopユーザー会
  • Hadoop Conference Japan
  • 「1ペタバイトのデータのインデックスを作る」
    • 耐えうるフレームワークがなかった
    • MapReduce
  • 大量のデータを読み込むのが大変
    • →横に並べて並列に読む
    • HDFS
  • データを分散したまま移動せずに処理する
    • データのローカリティをいかす
    • Map Reduce Framework
  • 大量データに特化したバッチ処理システム
  • きれいに数千台までスケールする
  • HDFS
    • 大きなファイルを分割
      • 64MB単位
  • MapReduce
    • 分散処理の難しさ
    • 個別対応が多い
      • どう分割するか、どう束ねるか、失敗をどうリカバリするか
    • フレームワークでパターンを作ることで簡単にする
    • map、shuffle、reduce
      • mapでデータを塗り分ける
      • shuffleで塗り分けたデータごとにまとめる
      • reduceで束ねる
  • Hadoopのエコシステムが魅力のひとつ
    • Pig
    • Hive
    • Mahout
    • HBase
    • ZooKeeper
  • RDB vs Hadoop
    • RDB
      • 管理する
      • 正規化
      • 一度に走査する単位を小さくする
      • 低レイテンシ重視
    • Hadoop
      • 「管理」しない
      • 非正規化
      • 一度に走査する単位を大きくする
      • スループット重視
  • 事例
    • Yahoo
      • 検索インデックス、迷惑メールフィルタのデータ作成
    • 楽天
      • レコメンデーション
    • DeNA
      • ゲーム中の行動履歴分析
    • VISA
      • カードの不正利用をあぶり出すモデルを生成
    • 国会図書館
      • 書誌データから検索エンジンSolr用のインデックスを生成
  • 最近のトピック
    • MapReduce 2.0
      • マスターサーバーの構成の変更
        • 1万台ぐらいスケールするように
        • Yahoo!のオーダー
      • MPI等にも対応
    • 機械学習
    • ベンダーによるHadoop拡張
      • Hadoop API互換のプロプラ製品もあるので注意
  • 来週NYでHadoop World

パネルディスカッション

第1部:コミュニティ最新情報(木村明治、濱野賢一朗、とみたまさひろ、永安悟史)
  • 永安:PostgreSQL(PostgreSQLユーザ会)
    • 情報提供
      • オフィシャルマニュアル、サイト
    • 人を育てる
      • セミナー、勉強会
    • 人をつなぐ
      • 飲み会
  • とみた:MySQL(MYNA)
    • 発足当時:MySQLの日本語化、普及、ユーザーのコミュニケーション
    • 最初の2つは達成できたので飲み会w
    • 技術面はOracleが
  • 濱野:Hadoop(Hadoopユーザー会)
    • 勉強会は草の根でやれるが、一同に会す場として
    • Hadoop Conference Japan 2011 Fall
      • 1178名
    • まだHadoopを使ったことがない人が過半数
      • 情報収集
  • 木村:Firebird(Firebirdユーザー会)
    • MLへの質問は、木村さんか林さんが答えている
    • レベルがいろいろあって勉強会のテーマが難しい
  • 赤井:勉強会に非常に人が集まり、コミュニティは人が減っている
  • 永安:ユーザー会から見て、どういうところで情報を入手しているかが見えづらくなっている
    • ユーザー会で勉強会を開催することで、世の中の動きについていく
  • 木村:PostgreSQLやMySQLは新版が出てネタがある
    • Firebirdは地味な更新ぐらい。古いバージョンを使い続けている人も多い
  • とみた:MLはメールアドレスを晒さないと質問できないのがハードルが高いのかも
    • アーカイブから自分の名前を消してくれ、という依頼もある
    • mysql casualという勉強会も人気
  • 濱野:昔からやっている人はMLでいい
    • 若い人は情報交換のやりかたが違っているので、頭を柔らかくしないとリーチできない
    • TwitterなりSNSなり掲示板なりとつなぐ?
    • 情報が分散している
    • HadoopはTwitterでの議論が多いが、集約されない
  • 永安:情報元のアンケートをとった
    • 試行錯誤している
  • 会場:海外との比較。日本は情報収集力が落ちてる?
  • とみた:ぜんぜんそんなことはない。
    • すでに普及している。Oracleが情報を出している
    • ユーザー会に頼らなくてもよくなっただけではないか
  • 濱野:世界のHadoopに関するTweet、言語別
    • 英語に続いて日本語が2位
    • 英語圏の人がHadoopのTweetを収集していて、日本語が多数混じっていて困る、という声もw
    • 日本に情報があふれている
  • あかい:USでは10年前に草の根勉強会が絶滅した
  • 濱野:SFではまた最近、飲みながら開発するような集まりが盛り上がってる
  • 木村:Firebirdは、英語、ロシア語、ポルトガル語
    • Google Translatorを使って日本語ブログも読んでるらしい
    • 海外では、ワールドワイドで1つのコミュニティ
  • あかい:ほかのコミュニティで参考になること
  • 濱野:できたばかりなので、いままであるすべてが勉強になる
    • 話題が落ちついてからのふるまいをどうするか
  • 木村:MySQLは技術がわかる人が多くていい
    • PostgreSQLは土地ごとに詳しい人がいる。MySQLもそれはない
  • 永安:商用DBのコミュニティいいなと思う(DB2、SQL Database、Oracle)。継続的に開催
    • LL系コミュニティは、企画力も動員力もすごい
  • とみた:PostgreSQLの組織力
    • MYNAでは、Oracleでやらないような勉強会をやりたい
      • 初級とか、ニッチなのとか
  • あかい:長い歴史のあるコミュニティの勉強会は、対象にあてはまる人が限られることがある
  • 永安:意識してレベル別の勉強会を開いている
    • 初心者向けも
  • 濱野:Hadoopは二分されている
    • マニアックなものは放っておいても草の根で勉強会ができる
      • まだHadoopは開発者と乖離していないので、コアな情報も得られる
    • そのため大規模なイベントは幅広くリーチするような方向で
    • おじさんばかりにならないように
      • 若者の集まりを応援するか、あるいはそちらにもリーチするか
  • とみた:若い人は、MySQL単体というよりは、インフラ勉強会などに集まっている
第2部:人材育成、エンタープライズ(梶山隆輔、濱野賢一朗、永安悟史、松田神一)
  • 梶山:MySQLビジネス順調
    • 課題。かつては日本語情報がない。
    • 最近は日本語情報が十分になってきたので、若い人が最新情報を英語で取りにいくようになってきた
  • 永安:PostgreSQLが初期に普及したのは日本語情報があったから
    • 仕事は生半可な知識ではできない
  • 梶山:SIerがユーザーに言われてOSSを導入することになり、あわてて勉強するケースもある
  • あかい:企業でOSS DBを使う課題
  • 濱野:自社の場合。PostgreSQL。コアな人材は集められている。
    • しかし、現場のエンジニアのすそ野はまだ追いついていない
  • 松田:LPICを10年前にはじめた
    • 資格試験。エンジニアの動機づけに
    • Linuxの次にDB
  • あかい:何を学ぶか
  • 梶山:基本は変わらない。
    • 高可用性、バックアップ・リカバリ、運用監視など5つ
    • どのDBでも共通
  • あかい:育てられた経験から
  • 永安:DBは本質はずっといっしょ
    • 応用がきく
    • 自分のスキルをスケールさせるのは無理
      • 10人を育てるにはどうするか、を意識する必要
    • OSSは職人気質の人が多く、体系的に人を育てるのが好きじゃない人も多いが、必要
  • あかい:学校の教育は役に立つか、企業の現場でおぼえるか
  • 濱野:いつも対立する議論
    • 両方とも重要
      • 尖ったエンジニアには資格試験は十分じゃないと言われるが、必要ではある
      • 現場経験だけだと使ってないものを知らなかったりして偏る
    • 資格試験勉強をすると「こんなの使わない」という知識も出てくるが、後々で役に立ったりする。自分の世界を広げる
  • あかい:資格やトレーニングコースの意図
  • 梶山:細かいオプションやコマンドを出してどうする、という声もあるが、それを知ったことでシェルスクリプトを組んで処理しなくてもよくなることがある
  • あかい:OSS DB試験を始めた背景
  • 松田:Linuxの用途としてWebサーバーが多く、バックにDBがある
    • OSSエンジニアを育てていく
  • 会場:DBだけではなくてシステム全体の知識が必要ではないか
  • 永安:そう思う。
    • DBエンジニアはアプリもハードも知る必要がある
    • 運用も。縦も横も
    • DBエンジニアから入ると、すべてにふれる
    • 上から下まで設計できる人が揃っていない
    • いかにそのような人を育て、見付けていくか
  • 梶山:OSSだけではない、という結論に
    • 組み合わせ、やりたい
  • 濱野:組みあわせは無数にできるが、定番の組み合わせにはノウハウがある
    • Webの3層システムのタイムアウト設定とか
      • そういうのを研修しているところはある。が、資格にはしづらい
    • OSSならではの目利き
      • いろいろな経験をしないと目利きできない
  • 松田:パーツは教育でできるが、組みあわせは教育では限界がある。そこはOJTで
  • あかい:運用系の知識や情報
  • 梶山:MySQLは経験のある人間(Nippondanji氏)がセミナーや書籍で啓蒙している
  • 永安:運用系の知識がないのが問題と考えていた
    • PostgreSQLのエンジニアと話せるだけの知識を
    • OSSの人は開発や先端が好きな人が多い
  • あかい:商用DBからOSS DBへ移るときの抵抗感、障害
  • 松田:商用のほうが機能が多く、かゆいところに手がとどく
    • が、機能の差が小さくなってきている
  • 永安:いちばん足りないのはプリセールスではないか
    • 商用の世界ではリスクを取って「できます」と言い切る人がいる
  • 濱野:既存のシステムの移行は現実的ではない
    • 新規システム
    • OSSにはキラキラしたものが少ない
      • 細かい機能なり、プリセールスのウリなり
    • 頭を使えば同じことはできる
      • 機能の組みあわせ
    • 「新規のシステムはできるだけOSSでやろう」といういきごみが重要ではないか
  • 梶山:MySQLの場合、移行より、ど新規案件
    • それまでになかったもの、エンタープライズでは考えられないスケール
    • Facebook、携帯インフラ
    • エンプラの経験や知識が足かせになることも
    • 考え方を変える必要
      • が、人間なかなか変わらない
  • あかい:Twitterからの意見。OSSはマーケが弱い?
  • 永安:ああいうことができればいいなと商用DBを見ている
    • 製品ブランドの付いた会社、資本力
    • 製品の勉強会を開いたり
    • ぶっちゃけ、技術者中心のコミュニティなので、マーケティングは弱い
  • あかい:MySQLは。Oracleは置いておいて
  • 梶山:OSSは商用ソフトからはありえないマーケティング
    • むしろ武器
    • 活用できていないのかも

LT:MySQLの文字コード(とみたまさひろ)

  • charset
    • 文字セット、文字コード
  • collation
    • 文字の照合規則
    • 大文字小文字を区別するか
    • 全角・半角、ひらがな・カタカナ、濁音
  • サーバー変数
  • はまりたくなかったらUTF-8で統一
  • DBのcharset、tableのcharset、カラムのcharset
  • 接続のcharset
  • 文字化け
    • 文字セットにない文字
      • "?" という文字でDBに入る
    • 接続で"?"に
      • 表示が化けるがDBはママ
  • 混在する理由
    • インデックスサイズ
  • ASCIIとUTF-8との比較
    • 照合順序

LT:データベースのフロントエンドにLibreOffice/OpenOffice.orgのBaseを(鎌滝)

  • LibO/OOo:オフィススイート
    • DBのBaseもある
  • 標準DB
    • HSQLDB
  • 外部DB
    • MySQL
    • PostgreSQL
    • Firebird
    • SQL Server
    • DB2
    • Oracle DB
  • ビジネスでHSQLDBは使えない
    • パフォーマンス
    • 複数人で共有できない
  • 外部DB
  • Baseのフォームが使いやすいので活用を
  • 専用のSDBCドライバがあるもの
    • MySQL
    • PostgreSQL
  • JDBC/ODBCを利用できるもの
    • unixodbc
  • OOoユーザー会アンケートをBaseで作って、展示を兼ねて毎回ブースに置いている

LT:オープンソースDBカンファレンス2006@ドイツ(木村明治)

  • International PHP 2006 Conferenceで併催
    • 行ってきた
  • ドイツのDBといえば
    • 「ドイツ鉄道」w

LT:「オープンソースデータベース標準教科書」開発秘話(宮原徹)

  • 専門学校向けの教科書に
    • 内容面
    • 講義のスケジュール面
  • 標準教科書シリーズ
    • クリエイティブコモンズで配布
  • 完全初心者対応
  • 途中で挫折しないように、量を絞る
    • まずは最初の達成感
  • 実行例をコピペするだけで実行できる
  • PDFとEPUB
    • 達人出版会
  • EPUBのデモにも最適?
  • 今回は正規化あきらめた
    • 次は設計編?

LT:商用ソフトウェアで構築・運用する高可用性PostgreSQLシステム(MKTインターナショナル あかいまこと)

  • Insight Outイベントでアンケート
    • 今後知りたいこと
      • HA、物理設計、運用、バックアップ・リカバリー
  • PostgreSQLのビジネスを立ち上げようとしてきた
  • 企業向けシステムはすべてOSSにする必要はない
    • 組み合わせ構成
  • 経験として、サーバーよりもストレージにふりまわされた
    • 物理設計
  • コンサル提供できないか
  • ハンズオンも
  • 日本HP・アップタイムテクノロジーズ・MKTインターナショナルで、トレーニングコースを提供する

LT:日本PostgreSQLユーザ会活動紹介(永安悟史)

  • We Need you.
  • 勉強会
    • ハンズオン形式も
  • 翻訳マニュアル
  • Let's Postgres
    • 技術系の記事をWebで提供
  • ニュースレターを毎月配信中
    • ユーザー会のWeb会員
  • Facebookページ
  • Twitter @PosgrgreSQL_JP
  • 開発に参加
  • 翻訳に参加
  • 盛り上げに参加
    • 知人の紹介で参加する人が多い

「イスラム飲酒紀行」

イスラム飲酒紀行
イスラム飲酒紀行
posted with amazlet at 11.11.03
高野 秀行
扶桑社
売り上げランキング: 8363

 タイトルからして秀逸。飲酒はご法度のイスラム圏で酒を飲むという。しかも著者は“酒飲み書店員大賞”も受賞している高野秀行。「イスラム圏の裏を探る」というノリではなく、「イスラム圏の人たちと酒飲んでサイコー」というノリが期待できる。そして、期待どおりの路線で、期待以上に面白く読んだ。

 著者によると、イスラム圏ではタテマエとホンネの差が大きく、飲酒は日本でいうと「高校生の飲酒」みたいなものなのだそうだ(本当?)。そこで、イスラム圏で酒を求めるのは人々のホンネの部分にもぐり込む旅となる。自分は絶対に近寄りもしないようなシチュエーション、たとえば紛争下の街とか、トタン板で囲まれた秘密の置屋とか、砂漠とか、秘密警察の監視とか、リアル北斗の拳状態のソマリアとかを飄々と超えていくと、そこは世界共通のしょうもない酒飲みたちがいるのだった。オアシスでの秘密の酒盛りとか、楽しそうだなー(オチもあるけど)。

 カメラマンや著者の撮った、いい感じの写真もいろいろ散りばめられて、酒を飲む人から飲まない人まで素顔のイスラム圏がちょっと身近に感じられた。

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

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

Monthly


FC2Ad