本を読む

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

RubyのReadline.readlineで初期文字列を与える

 readlineライブラリは、行編集機能つきで文字列を入力できるようにするCのライブラリです。便利なので、多くの言語がreadlineを呼び出すライブラリをサポートしています。Rubyでは、Readlineモジュールがそうです。

 このreadlineを呼び出すときに、初期文字列を与えたいと思いました。呼び出したときに最初からデフォルトの文字列が入っていて、不要なら編集して消すというパターンです。ダイアログとかHTMLのinputとかではよくあるやりかたですね。

 が、調べてみると、Readlineモジュールはおろか、元のreadlineライブラリにもその機能はないようです。

 以下、試行錯誤してやってみた結果です。それ違うんじゃない? とか、もっといい方法あるよ! とかありましたら教えて偉い人!

PerlのTerm::ReadLine::Gnuを見てみる

 Perlにはreadlineを呼び出すモジュールがいくつかあります。そのひとつ、Term::ReadLine::Gnuモジュールでは、readline()の第2引数(REPUT)として初期文字列を与えられるようになっています。

"PREPUT" is an optional argument meaning the initial value of input.

 これがどう処理されているか、ソースを見てみます。

        $Attribs{startup_hook} = sub {
            $self->rl_insert_text($preput);
            &$saved_startup_hook
                if defined $saved_startup_hook;
        };
        $line = $self->rl_readline($prompt);

 startup_hookに、PREPUT文字列をinsertする手続を設定しているようです。調べた途中をはしょると、readlineのrl_startup_hookという変数に設定するようです。infoでは、rl_startup_hookは以下のように説明されています。

 -- Variable: rl_hook_func_t * rl_startup_hook
     If non-zero, this is the address of a function to call just before
     `readline' prints the first prompt.

 readlineを呼んでプロンプトが表示される前に最初に実行するCの関数へのポインタ、を設定するようですね。

Ruby 1.9.1で試してみる

 termtterでは、Readlineモジュールにreadlineのダイナミックリンクライブラリを読み込んでreadline関数を呼び出すメソッドを追加しています。そこで、これをまねてみます。

 Rubyのダイナミックリンク呼び出し方法は、主にRuby 1.9で使われているdl2(DL::Importer)と、主にRuby 1.8で使われているdl(DL::Importable)という2系統があるそうです。termtterでは両立するように書かれていますが、ダイナミックリンクライブラリ中の変数を参照するといったことをすると、大きく違ってしまうようです。

 動作検証のコードなので、ひとまずRuby 1.9.1で動く範囲で試してみました。たぶんIA32のLinux限定のコードだと思います。

require 'readline'
require 'dl/import'

module Readline
  module LIBREADLINE
    extend DL::Importer
    dlload('/usr/lib/libreadline.so')
    extern 'int rl_insert_text (char *)'
    RL_STARTUP_HOOK = import_symbol 'rl_startup_hook'
    STARTUP_HOOK_CALLBACK = bind('int startup_hook_callback()', :temp)
  end

  def self.insert_text(str)
    LIBREADLINE.rl_insert_text(str.to_s)
  end

  def self.set_startup_hook(&blk)
    ptr = LIBREADLINE::RL_STARTUP_HOOK
    cf = LIBREADLINE::STARTUP_HOOK_CALLBACK
    cf.bind { blk.call }
    ptr[0, DL::SIZEOF_VOIDP] = [cf.to_i].pack('I!')
  end
end

Readline.set_startup_hook {
  Readline.insert_text('default text')
}
str = Readline.readline('> ')
p str

 rl_startup_hookのアドレスは、import_symbolで取り出せました(たぶん)。一方、DL::Importer#bindでDL::Functionオブジェクトを作り、DL::Function#bindで実行するRubyのブロックを割り当てました。最後に、DL::Functionオブジェクトのアドレスを、rl_startup_hookに書き込みました。

 これを実行すると、初期化文字列つきでReadline.readlineが呼ばれたようです。

$ ruby preput.rb
> default text

 めでたしめでたし(たぶん)。

まとめ

  • readlineにpreput文字列を与えるには、rl_startup_hookに設定したCの関数からrl_insert_textする
  • Ruby 1.9.1では、ダイナミックリンクライブラリを読み込むのにDL::Importerを使う(らしい)
  • ダイナミックリンクライブラリ中の変数名シンボルからアドレスを取り出すには、import_symbolを使う(たぶん)
  • Rubyの処理からCの関数ポインタを作るには、DL::Functionオブジェクトを作ってブロックをbindする(たぶん)

変更2009-05-31:set_startup_hookをブロック引数を取る形に変更

Mozilla Party JP 10.0に参加

 もじら組が毎年開催しているイベント「Mozilla Party JP 10.0」に参加してきました。

 遅刻+早退のコンボでしたが、いろいろな話、特にUbiquityとCanvasの話が聞けて、楽しませていただきました。「特製フォクすけハンドタオル」ももらえたし。

 以下、メモ。

Firefox, Mozilla, Humans, and the Internet We Want(Asa Dotzer、(Mozilla Corporation))

 この話の途中から参加。Microsoft vs. Netscapeをふりかえる話だった模様。

  • 10年前は、みんな青い「E」=インターネットだと思っていた
  • コミュニティに集まりGeckoを開発した
    • タブブラウジング
    • Googleサーチ
  • MicrosoftはIEが完成したものとした
  • Netscapeは広告頼りに
  • 2002、Mozilla 1.0が出て注目、NetscapeもMozilla 1.0ベースに
    • が、ポップアップブロックをナシにしていた
    • ユーザーがNetscapeから離れてMozillaに
  • Netscape 7.0.1
    • ポップアップブロックを有効に
    • が、Netscape、AOL、TimeWarnerの広告はバイパスされる
    • そのため、起動して最初のページでポップアップ広告が出る矛盾
  • ブラウザの開発が滞っていた
    • ポップアップ広告、ウイルス、遅い
  • インターネットの成長率が激しい時代
    • 新ユーザーが既存ユーザーより多い
    • IE以外のブラウザの選択肢を知らない
    • 絶望感
  • われわれはあきらめなかった
    • 新しくて、速くて、拡張機能を持ったブラウザ
    • ユーザーが自分のブラウザをコントロールできるように
  • ユーザーは賢いんだとFirefoxが教えてくれた
    • 利点があれば、「選ぶことができる」ということがわかる
  • 「コミュニティ」は私たちにとって軽い言葉ではない
    • 活動の中核
    • 莫大なリソースを持つ競合相手と戦うため
  • Mozilla Foundation
    • 社員200人ぐらい
    • 世界各地
    • ボランティア1,000人以上
    • ボランティアが支えてくれている
    • ソースコードを書く以外のボランティアが万単位の人数
  • 一般のソフトは、英語版などのオリジナル言語版の後で「儲かる言語」のtier 2言語版が出て、tier 3言語はその後
  • Mozillaでは70言語すべてが大事なtier 1言語
  • 3億人のユーザー
  • 大きなコミュニティをもとに開発されているブラウザ

Mozilla台湾コミュニティの紹介(Bob Chao)

 台湾でのMozillaコミュニティの活動を紹介。週1や月1の定例ミーティングをやってるとか、一般の人への啓蒙活動とか、がんばってるなぁ。あとやっぱりマスコットキャラを使って知名度を上げるというのは台湾でも有効みたい。

  • MozTW
  • 台湾ではFirefoxは10-15%のシェア
    • 多くの人がまだIE6を使っている
    • Microsoft台湾はがんばってIE8を普及しようと
  • 人気があるのはWebよりPTT(掲示板)
    • 夜の10-12時がピーク
    • 15万人
    • telnetで接続
    • telnetするFirefox拡張も2つ
  • モバイル
    • HTCやASUSが台湾にあるよ
  • moztw.org
  • かつてL10n zh-TWがあった
    • Piaipさん
    • L10nについて話し合うフォーラム
  • が、Piapさんが兵役に
  • 2004年、moztw.orgを設立
  • サイト
    • Wiki
    • Google Group
  • L10n
    • Flock、Songbirdなどの派生ソフトも
  • オフラインイベント
    • ASUSのオフィスを借りたり
  • Firefox Monthキャンペーン
    • 少数のメンバーが資料を作って、宣伝活動
    • キャンパスツアー
  • マスコットキャラ
    • Formosa(台湾)にちなんでFoxmosa
    • Foxmosaキャンペーンツアー
      • 観光地でFoxmosa風船を宣伝
  • 勉強会
    • Web標準、HTML5、JS
    • Mozill L10n
  • インターネット初心者へのコンピュータ講座も
    • Firefoxの基本的な使い方
    • さまざまなWebアプリケーション(ブログとか)
  • Freedom for generation Z
    • 高校生にフリーカルチャーを広める活動
  • ミーティング
    • MozTW Lab(毎週)
      • カフェに集まってディスカッション
    • MozTW Gathering(月単位)
  • オンライン活動
    • Firefoxの拡張機能を開発
    • 拡張機能の人気投票
      • メジャーリリースが出て1か月後
  • IE8を宣伝するページも作った(エイプリルフール)
    • 「Experiencing IE8」
    • Googleの「経験 IE8」で1位にw
  • Project GFX
    • カスタマイズ可能なFirefoxページ
      • 拡張機能のリストとか
    • OpenIDでログイン
    • 「Fire-Facebook」?
    • 今年の夏に公開β予定
  • 今年のテーマ「community developing」
    • Free Cultureに、まずは参加させる
  • Late 2009の予定
    • Mozilla Service Week
      • 5周年記念
    • Freedom generation Z 2.0
      • 南台湾も巻き込む
      • サポーター募集中
  • Geekだけではなく一般の人も参加できるコミュニティ
  • Webを愛していることが重要
    • 「We love the web」
    • オープンスダンダード
  • Q:今の一番の課題は
    • A:サイトの互換性を広める。政府のサイトがIEしかサポートしてないとか
  • Q:コミュニティ運営の面で
    • A:(1)兵役にともなう人の問題 (2)Free Cultureを一般の人に広げる
  • Q:イベントの成功のコツ
    • A:集会をやったり、Foxmosaツアーをやったりと、親しみをもってもらうようにしている。Foxmosaステッカーとか

自然言語インターフェイスとUbiquity(mar&mitcho)

 自然言語でブラウザに命令するUbiquityの日本語対応について。Ubiquityは記事を読んだぐらいの概要は知ってたけど、日本語対応したたとは知らなくて、その実装の話も聞けて面白かった。Parser version 2の話は、キーワードがいくつか出たけどあっさりした説明だったので、詳しく知りたいような、聞いても理解できないかもしれないような。

  • 会場で初めて「Ubiquity」を聞いた人→半分弱ぐらい
  • Ubiquityって何?
    • 言葉で操作できるインターフェイス
    • コマンドをWebから自由に追加できる
    • 内蔵のテキストエディタですぐに試せる
    • WebAPI使い放題
    • jQuery入ってるよ
  • Mozilla Labsの実験的なアドオン
    • アイデアを実験する場所
  • 言葉で操作すれば、メニューやアイコンもいらないし、専用のページを開く必要がない
  • 文字になるなら入力方法は問わない(将来的には音声、マウスジェスチャなど)
  • 日本語でOK(パーサーを書きました。後にmitchoさんの公式多国語対応(Parser version 2)も)
  • 入力→パース→コマンド候補を抽出→実行
  • コマンドは主に動詞
    • 日本語では文の末尾に
  • 引数は目的語
    • 日本語では動詞の前に
  • JSでコマンドを記述
    • CmdUtils.CreateCommand()にハッシュを渡す
      • executeの処理とpreviewの処理
  • extensions.ubiquity.languageでパーサーを指定
  • 5つのファイル
    • 助詞などのデータをJSONで定義
    • コマンドの引き数の品詞を定義
  • 最近は設定ページもある
    • CSSでデザインを変えられる
  • 日本語パーサーの処理の流れ
    • 読点で分割
    • 助詞で分割
    • 動詞を決定
      • 述語の一番短い文
    • 目的語を絞り込み
      • 動詞を削っていく
    • 目的語を決定
    • Ubiquity(NLParser)に渡す
  • 複数の引き数は読点で区切って与える
  • 同じ助詞が複数ある場合は最後のものを使用する
  • 以上、4月まで
  • 次の世代へ
    • Parser version 2
    • version 1は開発終了
    • Ubiquityの本格的なローカライズ
    • 9言語に対応
  • 6月中旬公開予定のUbiquityの次バージョン
  • 汎用パーサー+各言語の設定
    • Principles and Parameters方式
  • 意味論的役割で引き数を割り当てる
    • semantic roles
    • 同じコマンドを他言語にローカライズするとき、引き数の処理が半自動ローカライズ
  • よりいよい文末動詞のサポート
  • Taskfox
    • Ubiquityをロケーションバーに内蔵
    • Firefox.next
  • Jetpack
    • Ubiquityから派生

クラウド時代(笑)のCanvasプログラミング(上山智士)

 JavaScriptのgyuqueさんがCanvasを解説。魔法みたいだ。

  • 基礎編
  • HTML5 Canvas要素
    • サーバーで画像を生成したり、無理矢理画像っぽく表示したりとかの不毛なことが不要に
  • twitterボットのneru
    • 「ねる」発言を集めてグラフ表示
    • GAEで作った
      • 勝手にタイムアウト
      • 画像処理APIが使いものにならない
      • →Canvasを使おう
  • ブラウザとエディタさえあれば開発できる
    • ImageMagick不要
  • 各ブラウザ、今まさに実装中
    • IEが…
    • みんなでCanvasを使ってIEに実装プレッシャーをかけよう
  • 3D on 2D Canvas
    • js touch
    • 2DのCanvas上で無理矢理3D
    • 反射とかも
  • テクスチャマッピング
    • transformしてclip path
    • 前後でsaveとrestoreしないといけない
  • 反射
    • 反射した先にあるものをテクスチャにあらかじめ焼き込んでおく
  • テクスチャの歪み
    • パースペクティブ
    • 2Dなのでしかたがない
  • 3D Canvasは各社が独自に実装中
  • Opera 3D Canvas
    • Opera Labsから対応版をダウンロードできる
    • ドキュメントはTim's Bogがすべて
    • シーングラフモデルの高レベルのAPI
    • js touchを移植してみた
      • 歪みねえw
      • Macだとあまり速くない
  • Google O3D
    • 各ブラウザへのプラグイン
    • シーングラフAPI
    • Canvasではなくてobject要素
      • ブラウザからみるとFlashと同じ扱い
    • js touchを移植してみた
      • かなり速い
      • さすがGoogleの物量作戦
    • が、ドキュメントがぜんぜん
      • シェーディングでエラー
      • しかもtrueやfalseが返るだけ
      • 原因は最後に改行が入っているかどうか
  • Gecko 3D Canvas
    • Firefox+アドオン
    • 低レベルAPI
      • OpenGL ES 2.0のJSバインド
    • js touchを移植してみた
      • O3Dと同じぐらいさくさく
    • 本格的だけど難しい
      • OpenGL ESそのまま
        • 逆にいうとOpenGL ESがわかれば使える
      • 固定パイプラインなしなので敷居が高い
  • 簡単な順:Opera、Gecko、O3D
  • Q:Flashと置きかわるか
    • A:スピードが改善中。いまはFlashだろうが、1年ぐらいたてば変わるかも
  • Q:2Dの描画に3Dモデルが必要?
    • A:Google O3Dは2D APIを用意している
  • Q:Googleの仕様が流行ると弊害は
    • A:2Dとか。が、物量作戦で2D APIをエミュレートしてくるかも
  • Q:Flashより弱い点
    • A:AS4と比べると現行のJSは弱い。が、JSが追いついてくるのでは
  • Q:すべてCPUでレンダリング?
    • A:2DはCPU。3Dはアクセラレータ対応。が、Operaはオフになっている?

LT:J2を知ってる?(池田百合子)

 ここからライトニングトーク。

  • 次回第46回監事
  • Junet Jingiskan Party
  • ジンギスカン食べてます
  • Junet:日本のインターネットのさきがけ
  • 全国で開催
  • だいたい年2回
    • 新潟は田植えの時期をさける
  • ネットニュースで告知
    • いまどきネットニュース見てない
  • J2スピリットはOSSっぽい
  • サイドメニューの配布
    • 「赤福リリース」
    • 「ベータリリース」
  • 前夜祭もある
  • メーリングリスト

LT:UxUを使った自動テストで安心アドオン開発(Piro)

  • 作った拡張25ぐらい
    • 目がいきとどかないのでリグレッションエラー
      • タイポ
      • うっかり削除
  • そこで自動テスト
  • 修正→自動テスト→次の修正のサイクル
  • どうして自動テストしない?
    • 書くのが面倒
    • コンピュータで判断させるのが面倒
  • そこでUxU(うず)
    • 非同期処理をテスト
    • ヘルパー関数
    • テスト結果が見やすい
      • 違う箇所を色分け
  • 採用事例
    • XUL/Migemo
      • リグレッションが多かった
  • テキストリンク
    • 品質改善
  • マルチプルタブハンドラ
    • 後方互換性
  • クリアコードの仕事
    • 複数人で開発
  • はてブ拡張の開発でも
  • 会社の紹介
    • Mozilla Japanサポートパートナー
    • アドオン開発
    • テスト開発
    • Cutter
      • Cのテスティングフレームワーク
      • Sennaでも採用
      • クリアコードの通った後にはペンペン草もはえないw

LT:オープンソースを楽しむ10の方法(dynamis)

  • こんなにFirefoxがフツーになるなんて
  • 参加しないともったいない
  1. 使用、活用
  2. 会話、啓蒙
  3. 支援、案内:困った人を助ける
  4. 執筆、翻訳:ドキュメント。英語にも強くなるよ!
  5. 報告、検証:twitterとかじゃ伝わりづらいから開発者の見てるところへ
  6. 議論、提案
  7. 美術、芸術:デザイン
  8. 拡張、改造
  9. 開発、設計:バグはあなたを待っています!
  10. 派生、組込:Fennec開発合宿参加者募集中!

LT:Mozilla Developer Center Update(potappo)

  • MDC(Mozilla Developper Center)
    • 開発者向けドキュメント
    • JSなどWeb開発に関するドキュメント
  • MediaWikiからDekiWIkiに変わった
    • 1年前の夏
    • シンタックスハイライト
    • ページタイトルが翻訳可能に
    • WYSIWYGエディタ
      • ショートカットキー
      • ソースモードでも編集可
  • DekiWikiがアップグレードされた
    • 「編集の概要」入力欄
    • 更新差分の表示が改善
  • 貢献者募集

LT:Mozillaコアハッカー育成計画(btm)

  • ハッカーにならないと体重が増えるw
  • ハッカーになると体重が減るw
  • という冗談は置いておいて
  • もじら組のML
    • 昔はコアなネタが多かった
    • 寂しい
  • 拡張機能勉強会
    • どちらかというとライト
  • 問題点
    • もじら組としてはコア開発者の育成をあまりやっていなかった
  • 一緒に勉強する場
    • メタコミュニティ
    • 情報交換がやりたい形態を
    • MLなど
  • 必要なもの:チャレンジ精神
  • 言い出しっぺの法則を自分に発動

LT:OpenOffice.orgにもある便利な拡張機能(鎌滝雅久(OpenOffice.org日本ユーザー会))

  • OOO 3.0の起動画面にテンプレートと拡張機能のアイコン
    • 拡張機能のダウンロードとか
  • 拡張機能に新機能
    • SUN Report Builder
    • SUN PDF Import
    • SUN Wiki Publisher
  • ノンコードプログラミング
  • 日本語環境改善機能を開発中
    • Writerの改善
      • IPAフォント、両端そろえなど
    • Impress
      • クリップアートなど

LT:マルチモーダルWeb HTML+CSSだけじゃないWeb(芦村(W3C/慶應))

  • キーボードやマウスだけじゃない
    • 音声入出力
    • マウスウジェスチャ
  • Interaction Manager
  • ライフサクルイベント
  • いろいろなデバイス(家電等)が通信するアーキテクチャ
    • ビデオ、TV
  • 活動期間更新手続き中
    • モダリティコンポーネントの具体的作成方法
    • 記述言語InkML
    • 気分を記述するEmotionML
    • マルチモーダルMashUp

LT:Mozilla向けの新しい問題報告センターぷろじぇくと(escalation forum メンバー)

  • 新しいサイト
    • バグ報告
  • Bugzilla
    • バグ報告の質の問題
    • 連絡の取れないバグ報告者
  • Bugzilla-ja
    • 報告時に高い質を要求
    • 登録数が低下
  • BBSやフォーラム感覚で投稿できるIssue共有サイトを
    • Bugzillaをカスタマイズしまくり?
    • シンプルな入力項目
  • 参加者募集中
    • 「mozwiki」で検索
  • Bugzilla-jaもよろしく
  • (注:Google Docsでプレゼンすると事故の元らしい)

変更2009-05-31:Ubiquityでmarさんとmitchoさんの役割の記述を整理

「銭」7巻

銭 七巻 (BEAM COMIX)
銭 七巻 (BEAM COMIX)
posted with amazlet at 09.05.28
鈴木 みそ
エンターブレイン

 ふと気付いたら完結していた。

 この巻では、ホストクラブを、従業員側と客側からネタに。昔の情報細密充填路線と違うなぁと思っていたら、結末が!

IIJのMapReduce実装「ddd」

 IIJのMapReduce実装である「ddd」(Distributed Database Daemon)の話を聞いてきました。立ち話なのでごくさわりの部分だけでしたが、以下にメモしておきます。素人なので、理解が間違っていたらごめんなさい。

  • インターネットバックボーンのルーターの莫大なログを集計してトラフィックを解析するために開発
  • (emasaka注:元から散らばっているログを一箇所に集めずに集計できるので、MapReduce系に向いた用途か)
  • GoogleのMapReduce論文を参考にフルスクラッチで実装
  • WinnyっぽいP2P技術も採用
  • Key-Value Storageによる分散ハッシュテーブル
  • Amazon Dynamo?
  • ノードを増やせばそれだけスケールするスケーラビリティ
  • ノードが落ちてもほかのノードにもデータがある可用性
  • マスターがなくすべてのノードが完全に対等なP2P構成
  • 1つのノードのデータは、直近の3ノードにリプリケーションされる
    • 1ノードが落ちると、それを検知したノードがもう1ノードにリプリケーション
    • リプリケーション先は、ノードIDによって決まる
      • ネットワーク的な近さを見るわけではない(emasaka注:実装としてはわかるけど、日米間リプリケーションとかは嫌だなぁ)
  • ノード探索は?
    • Winnyのような感じ
  • 処理はRubyで記述
    • Map、Shuffle、Reduceのそれぞれの処理を記述する
    • ノードの網に処理を投入すると、ノード間で伝わる

Git勉強会@万葉#3に参加

 タイトルの勉強会に参加してきました。gitでありがちなコンフリクトの場面と、そのときになにが起こっているか、ではどうするか、といったあたりを、Debian JP会長の岩松さんが解説してくれるのを聞きました。

 ちょうどgit入門して、コンフリクトでパニクってる時期だったので、自分的にぴったりのフェーズでした(ちゃんと理解できたわけではありませんが)。

 以下、あとで読み返すための、聞きかじりのまとめ。

  • git pullでコンフリクトする場合
    • ファイルを編集
    • コンフリクトのマーク
    • git add
    • git commit
  • git pushでコンフリクトする場合
    • 先の変更がこっちにないため
    • git push --forceはダメ、ゼッタイ。git pullもあんまりよくない
    • git remote update
    • git rebase origin master
  • git rebaseでコンフクトする場合
    • ファイルを編集
    • git add
    • git rebase --continue
  • .dotestがあるよというエラーになったら消しちゃえ
  • mergeベースのマージと、rebaseベースのマージ
    • どっちが主か
  • 一般開発者がpushする方式と、管理者がpullする方式
    • パッチをメールとかも
    • git cherry-pickでpullするcommitを選べる
  • git clean -f -d hogeとgit clean -f -d hoge/は動作が違う
  • git tagはcommit以外でも、hash値がついているものは何にでもつけられる

「新世紀メディア論-新聞・雑誌が死ぬ前に」

新世紀メディア論-新聞・雑誌が死ぬ前に
小林弘人
バジリコ
売り上げランキング: 625

 雑誌「WIRED日本版」「サイゾー」やWeb「ギズモード・ジャパン」などを創刊してきた「こばへん」さんによるメディア論。サブタイトルやオビで、旧来のメディアへの批判の本のように見せているのだけど、読んでみたら、実は「編集」という行為への愛を説く本だった。

 なにしろ、

編集とは「愛」

とか書いてあるし。といっても、

もちろん、本書をここまで我慢しながらお読みいただいた皆さんには、わたしが雑誌という言葉を使ったとしても、それが雑誌コードを取次会社から取得し、全国のコンビニや書店で販売される紙のアレを指すだけの狭義な意味でないことはご理解いただけるかと思います。

ということでもある。

 第三者的にメディアを論じるのではなく、「編集者」としての立ち位置から、これからの「自分たち」の方向性について論じた本だと思う。案外、編集論としてもネット論としてもオーソドックスで、であるがゆえにリアリティがある。

 以下、こばへん名言集をカテゴリーごとにメモ。これだけではなんのことかわからないけど。

誰でもメディア

  • 「いろんな組織がメディア化しているということなんです」
  • 「これは、不動産情報サイトですが、ある意味コンテンツの見せ方やテーマの切り口が「編集」されたコンテンツなのです」
  • 「ネット上で情報発信するあらゆる企業は、自分がメディアであるという自覚を持つべきなのです」
  • 「プロでない人々がいつでもそれを使って、新しい文法を発見することができることこそ、「誰でもメディア」の醍醐味でもあります」

ストーリーとコミュニティの提供

  • 「特定の読者に対して情報を提供し、コミュニティを組成し、そのコミュニティに価値が宿るのではないでしょうか」
  • 「メディアにおいては、アテンションこそが通貨です」
  • 「今後の企業活動におけるメディア戦略は、「PR」よりも、「ストーリーの提供」という方向に軸足を移しつつあると考えます」
  • 「これからの編者は、単にコンテンツをつくるだけではなく、人の動線というものをどう設計できるかが求められていると思います」
  • 「ジャービス氏は「雑誌の価値は編集者でも、記事にあるのでもなく、それは雑誌を取り巻くコミュニティであると言います。わたし自身も、まったく同じ結論を抱いております」
  • 「クリエイティブの原点も、この共感の創出にあるのではないでしょうか」
  • 「新しい価値を創出する場合、コンテンツよりも文脈を編むことのほうが重要であり、それはある意味、より創造的な方向を選択するということを意味します」
  • 「(巷にあふれる)「日刊あなた」成功の可否は、「あなた」個人がメディアとして他者に影響を与えて、価値を創発できるかどうかがカギを握ります」
  • 「多くのフォロアーで構成されるナノメディア空間のなかで、どのような足場を築くのかということが、メディア設計の出発点になってくるだろうと予期します」
  • 「もし、空虚なコンテンツばかり選ばれるのであれば、それは民度の反映なので仕方ないことでしょう。しかし、そうだとすれば、カリスマ書店員のようなコンテンツ・ソムリエが人為的にコンテンツを紹介することが、クローラーやCGM全盛時代には改めて高付加価値を与えるであることも予見されます」
  • 「フローが高くなっても人間にとっての時間は有限ですから、閲覧できるコンテンツ数は限られています。そんななか、「なにを知るべきか、またどのような意味があるのか」といった文脈を編むことが、より重要になってくるかもしれません」
  • 「「ヴィレッジバンガード」や「まんだらけ」はまさに本付きディスティネション・ショップだったかと思います」

マスからニッチへ

  • 「マスへの訴求は「認知獲得」ですが、ネットのメディアはインフルエンサー対象のものが少なくありません」
  • 「コストを鑑みると、成立しない規模の市場もあるわけです。(中略)実はニッチになればなるほど、高給取りの社員が多い既存の大手出版社いは扱えなくなるわけです」
  • 「ウェブに手薄でありながらも、ニッチなコンテンツを有するメディアほど、「本歌取り」では美味しい標的だったりします」
  • 「「誰でもメディア」時代は、マジョリティの知覚において不可視のまま越境するステルス(隠密)型メディアの勃興期でもあるのです」
  • 「これからは横のトライブ同士が互いに連携していくという新しいグローバル展開の予感がします」

CGM

  • 「「地球の歩き方」は紙の時代かあすでにCGM(コンシューマー・ジェネレーテッド・メディア)だったわけですね」
  • 「一概に現行メディアの価値が下がると考えるのは早計で、実はCGMと組み合わせると、かなりの収益増大につながると、わたしはかねてより主張し(後略)」
  • 「CGMを否定するわけではありませんが、たとえば、その製品についてあまり明るくないときに、やたらと仔細に詳しい常駐マニアの方が「あれがいい、これのここがダメ」と述べて丁々発止しているのは、初心者には参考にしづらいということでしょうか」

雑誌・新聞(フロー) vs. 書籍(ストック)

  • 「書籍は(特に有体物としてのそれは)、その冗長さゆえメディア・コンバージェンス(収束・融合)の流れから独立して存在することが可能な、完結したメディアという気がします」
  • 「新聞は限りなく「雑誌」的なるものに、雑誌は「新聞」的なものへと、ますます近接していくかと思われます」
  • 「電子媒体だからフローが高いというわけではなく、行動属性にあわせて、メディアはその情報特性も変えていくように推移していくのではないか、とわたしは考えています」

「編集」とは流通経路に関係ない

  • 「もちろん、本書をここまで我慢しながらお読みいただいた皆さんには、わたしが雑誌という言葉を使ったとしても、それが雑誌コードを取次会社から取得し、全国のコンビニや書店で販売される紙のアレを指すだけの狭義な意味でないことはご理解いただけるかと思います」
  • 「雑誌と出版を狭義な意味で語り、さらに「放送」と「配信」というプロトコル(通信手段)に区別することは、メディアの未来を見渡すときに、視野狭窄に陥る可能性があり、メディア企業の可能性を狭める可能性がある、と思ったから、「出版」という言葉を広義に解釈している次第です」
  • 「情報の価値が必ずしも有料視聴や購読、または広告出稿で賄われるわけではありません。(中略)「出版」とは、換金手段のことではないと考えます」
  • 「多くの日本の出版社は、前述したように、「ディストリビューション(流通)オリエンテッド」であり、デジタル化については、ディストリビューション・チャンネルが増えた程度の認識であることが多々あります」

これからの「編集」

  • 「情報商社、それでいいじゃないですか」
  • 「まさに編集という行為は、情報のハブ(データの集約・中継装置)づくりです」
  • 「ウェブ上では、取次に任しておけば本が並ぶというわけではないのです。すべて自力で、マーケティングからプロモーション、はてはビジネスまで編み出す必要があるのです。だから、ネット上でメディアビジネスを行うということは、自然と全部やることになるのです」
  • 「(1)ウェブ上での人の流れや動きを直感し、情報を整理して提示する編集者としてのスキルを有する、(2)システムについての理解をもち、なおかつUI(ユーザー・インターフェイス)やデザインについて明快なビジョンと理解を持つ、(3)換金化のためのビジネススキームまでを立案できる……というスキルセット」

編集者魂

  • 「編集とはその対象と分かち合う相手への「愛」。そして、技術や見た目へのオタクなまでの情熱やこだわりを指すのかもしれません」
  • 「「粗雑品」だから最低だと同定する前に、最高の原石を仕込むことこそ、編集者の仕事だと思いますし、「最低」なものが集まらないよう、どういったエコシステムを構築するのかが腕のふるいどころではないでしょうか」
  • 「全員が本気のプロを目指すにしても、競争過多ですから、「ただそこに身を置いていれば食える」という時代はもう終わりでしょう。メディアは、まさにそういう時代に突入しているのではないでしょうか」
  • 「わたしが出版を通じて学んだ「編集力」は、入稿までのスキルのみならず、サービスや商品、ブランドのプロデュース力でもあり、未開の分野を開拓する能力や人を動かす力でもあり、交渉、仕切りや進行、予算管理、資金集め、パッケージング、ひいては不可能だと言われていることを可能にする、ビジネススクールでは学べない特殊な才覚を発揮できる職能だと信じています」
  • 「わたしたちプロには「アティチュード」が必要だと思います。(中略)「ロック・スピリット」があるように「メディア・スピリット」もあると思います」

ネットメディアと既存メディアのそれぞれ弱点

  • 「「ロングテール理論」の美しい誤解への反論でもあるのですが、実は資本力・ブランド名のない個人が出る幕は「トルソー」(真ん中の胴体)にしかないと。もちろんテールには個人が連なりますが、そこから収益を上げるのは前述した”規模のビジネス”が行える一部企業です。ショートヘッドは言うまでもありません」
  • 「既存マスメディアの方法論は、先にコストありきとなりますので、一定規模の収益を確保できなければ存続できません」
  • 「電子コンテンツの難しい点は、フローが高まることで、価値の逓減も早くなるということです」
  • 「ネット上には映画「スターシップ・トゥルーパーズ」の虫みたいに、次から次へとコピーが出てくるので、その点でもマイナスサム・ゲームを誘発しかねません」

その他

  • 「「誰でもメディア」が示唆すべき教訓のひとつは、「他人(特に出版社)の進化を奪え」です」
  • 「ネット上のサービスは、先行者有利といわれますが、検索エンジンのグーグルも、急速に成長しつつあるSNSのfacebookもそれぞれの分野では後発です」
  • 「ブログでメディア・ビジネスを行うには、ビジネスモデルが不可欠であり、コンテンツだけ用意すれば「オシマイ」というほど甘いものではありません」
  • 「業界的にトレンドではなくなった頃、レイトマジョリティーへのビジネスが見込めるのかもしれませんね」
  • 「アマチュアも含む「誰でもメディア」が立ち位置を明確にするために「引用」せざるをえない「発行」元として、マスメディア(というか、ブロードキャスト)の需要はなくならないと考えています」
  • 「参入障壁の低さは競合者の多さを物語ります。よって、ネットに対応できたからといって、かつての組織規模を維持できるわけではありません」
  • 「(ビデオキャストは)テキストのブログよりも参入障壁は高く、ここはまだ多才な個人か、すでに定額で発生するコストをペイできる力をもった映像制作会社に委ねられた領域のような気がします」
  • 「企業の広告に頼るメディアこそ、ユーザーから検索されてナンボ、と言えます」
  • 「日本の新聞の場合、わたしは記者の顔が見えないのはいかがなものかと常々思っています」

「とろける鉄工所」1・2巻

 話題になっている漫画のようなので読んでみたら、面白かった。

 溶接工の笑えるエピソードを1回数ページの読み切りにまとめていて、まさにカバーの帯にあるように「超ほのぼの時々デッド・オア・アライブ」。なにしろ、その下には、

うちの旦那は目玉が焼けます

と書いてあるし。ちなみにこれは本文中のセリフにある言葉で、目玉の日焼けみたいなものだそうな。痛くて涙が止まらないらしい。

 ほかにも、スパッタ(溶けた鉄が飛び散ったやつ)が服の中に入ったり服に引火したり、じん肺が職業病だったりという怖い話が、わりと飄々と次々と登場する。小島さんが片目を失明した話なんて、あっさり描いてるけど、こっちがヒィィィとなりそう。

 そんな自虐ネタの中にも、仕事のこだわりとかが伝わってくるのでありました。ホームセンターの工具コーナー、楽しいよね。

第52回東京エリアDebian勉強会に参加

 DebianというLinux(に限らないけど)ディストリビューションの勉強会「第52回東京エリアDebian勉強会」に参加してきました。Debian開発者への道とかまわり道とかを持ちまわりで発表する勉強会みたいです。

 会場は和室。隣室で長唄や端唄の練習をやっていたり、こちらの部屋でも抹茶を点てる人がいたりと、ちょっと変わったまったりとした雰囲気でした。

 以下、話を聞きかじったメモ。

MC-MPI Debian公式パッケージへの道(仮)

Debianにパッケージの追加を依頼する話で、ハマったところもふくめて順を追って説明していたのが実践的な感じでした。

Erlangをつかってみる

CouchDBを使うにあたって、実装言語であるErlangの実行環境の構成を調べ、それをふまえてErlangのサンプうプログラムを試しにDebianパッケージにしてみた話でした。仮想マシン+バイトコードの言語ではみないろいろあるみたいで、今回もcdbsのおかしな挙動(バグ?)に遭遇した模様です。

ゴールデンウィークこんなのしてみました: Androidアプリをつくってみた

Android用に簡単なサンプルアプリを作って、エミュレータと実機で動かした話でした。サンプルとして、アプリからtopコマンドを実行しちゃったり(笑)。会場では、Eclipseは1GB以上メモリを使うとかXGAより大きい画面が必要とか、そっちの話が妙に盛り上がったような…

DDTPでの翻訳プロセスについてのワークショップ

aptとかで表示されるパッケージの説明文を各国語に翻訳するプロジェクト(DDPP)が数年前から動いていて、ようやく最近リリースに入るようになったけど、量も質も追いついてないね、という議論でした。実際に作業している人にとっては自分の訳にレビューが入らないと不安だし、一方で意味のとれない翻訳が入っていたりするし、パッケージ数は膨大だし、と。とりあえず訳文投稿やレビューをWebからやるDDTSSというのが使われているそうです。

termtterの本家にpush

 GithubでコマンドラインのTwitterクライアント「termtter」をフォークして、いろいろいじっていたら、いつの間にかコミット権をもらってました。わーい。

 というわけで、いじったやつを本家にpushしてみました。どきどき。

 本家にpushできるようにする方法は、「githubでforkしたリポジトリから本家にpush - はこべにっき#」を参考にしました。よく見るとこれもtermtter。

 いろいろなcommitがpushされたので、主な変更点をまとめます。そのほか、あとでrevertしたりのゴミcommitも混じっていてごめんなさい ><

  • plugins/tinyurlを複数のURL短縮サービスに対応
    • フェイルオーバーのため
  • plugins/tinyurlをupdateのほかにreplyにも適用
  • modify_arg_for_.*をフックするフィルタが複数共存できるように
    • :stdout_typable_id
    • :tinyurl
  • 短縮URLを展開したときに、マルチバイト文字が含まれているとRuby 1.9でエラーになるのに対応(plugins/expand-tinyurl)
    • あまりかっこよくないので、かっこよくrefactor希望
  • plugins/expand-tinyurlにconfigを追加
    • skip_users:短縮URLを展開しないユーザー
    • shortters:URL短縮サービスの追加

 gitの使い方は、多くの方が言っているように、「WEB+DB PRESS vol.50」の「はじめてのGit」特集がとてもわかりやすくて参考になりました。実際のワークフローにもとづいて必要な作業を解説しつつ、その操作の仕組み的な意味をきちんと押さえていて、ビギナーの私には目からウロコが落ちまくり。ネットにあるワンポイントの情報ももちろん参考になるけど、自分のような「何がわからないのかがわからない」初心者には、この特集で体系的に学べてとても参考になりました。

WEB+DB PRESS Vol.50
WEB+DB PRESS Vol.50
posted with amazlet at 09.05.17
WEB+DB PRESS編集部
技術評論社
売り上げランキング: 167

「極道めし」4巻

 刑務所の囚人たちによる、思い出と人生のメシ話合戦。いいかげんネタが尽きるかと思いきや、次から次へとネタが続いて飽きない。この巻だと、山場と見せかけてすかしてみせる技を使ってみたり。

 今回の泣かせネタ。

  • 駄菓子屋の思い出
  • デバートのレストランでの涙のホットケーキ
  • 元風俗店長の涙のおにぎり茶漬け
  • 元鉄砲玉の母の野沢菜

 とかいいつつ、ベタな「カツ丼! ラーメン!」に噴いた。

 ちなみに、オビの推薦文は「孤独のグルメ」の井之頭五郎という、ネタっぷりがいい。

「と学会年鑑KIMIDORI」

と学会年鑑KIMIDORI
と学会年鑑KIMIDORI
posted with amazlet at 09.05.12
と学会
楽工社
売り上げランキング: 582

 今回のトンデモ本大賞は「小粒」の声が続いたらしい。報告ネタでは、コンビニ本が続いたなぁ。

 とかいいつつ、いつもどおり、笑いながら読んだ。前回に続いて嘘ニュースの人のネタが異色で楽しかった。

「闇の鶯」

闇の鶯 (KCデラックス)
闇の鶯 (KCデラックス)
posted with amazlet at 09.05.10
諸星 大二郎
講談社

 諸星大二郎の新作短編集。ホラーというか、怪談っぽい話が中心。

 表題作は、商社による山の開発と自然をめぐる話を、山姥と少年によるパソコン対決という異色の見立てで描いた連作。パソコンはともかく(笑)、山姥の由来をめぐる議論が印象的。あと、この作品と「それは時に少女となりて」は、なまめかしい感じを前に出してるなぁ。

 ホラーとしては、「人魚の記憶」と「書き損じのある妖怪絵巻」が、最後の最後まで対象を描かない手法でぞっとさせた。

「Debug Hacks」出版記念イベント

Debug Hacks -デバッグを極めるテクニック&ツール
吉岡 弘隆 大和 一洋 大岩 尚宏 安部 東洋 吉田 俊輔
オライリージャパン
売り上げランキング: 1107

 書籍「Debug Hacks」の発売記念トークイベントが、新宿のジュンク堂で開かれた。ちょうど持ってなかったので、買いがてら、イベントに参加してみた。

 今回は、内容とかの技術的な話じゃなくて、執筆裏話が中心。作業工程の話がいろいろ聞けた。バタバタしながらも、オンスケジュールで出版できてよかったですね。

 本の中身はこれから読みます。以下、メモ(敬称略)。

自己紹介

  • 大岩
    • 発起人のひとり
  • 大和
    • 大岩と、本を書きたいねといってたら実現
  • 吉田
    • あとから参加
    • 仮想化あたりを担当
    • 自分の本がオライリーから出るなんて
    • イベントやって、人気作家みたいでうれしい
  • 安部
    • 発起人の3人のひとり
  • 島本
    • コントリビューター
    • ミラクルではない
    • 安部の知り合い
    • アメリカからリモートで執筆

裏話

  • 源流の源流(大岩)
    • 社内で20%ルールを検討
      • 結局やらなかった
    • でも自分は開発したいものはない
    • では本を書こう
    • ダンプの見方とか
    • 会社のブログに書いていた
    • アセンブラの話に、はてブがけっこう多くついた
      • 売れるんじゃないかと思ったw
  • はじまり(大和)
    • 2008年5月ぐらいに、やろうという話に
    • 「ミラクル出版局」名義で会議室を予約
    • 読者対象なども含めて具体的に話す
    • 毎日のように
    • 記事の候補をリストアップ
  • 出版社に声をかけるが、反応悪い
    • 「システム管理者向けのほうが…」
    • 「会社の宣伝?」
    • 「自費出版?」
    • 出版あやうし
  • 6月、吉岡と吉田が合流
    • プロファイリングや仮想化のネタもできそう
  • 8月、島本と美田がコントリビュータとして参加
    • カーネルハッカー
  • オライリーとの出会い(吉岡)
    • 5月末のLinux World Expo
    • オライリーのブースで話を持ち込む
    • 即決
  • オライリーとの打ち合わせ(安部)
    • すごく盛り上がる
    • ちなみにオライリーの人が安部と大岩をずっと間違えていたw
      • だいぶ後で気づいたらしい
  • 出版時期は、4月のフレッシュマンシーズンにあわせる(大岩)
    • スケジュールが遅れなかったのは奇跡w(吉岡)
  • 社内の執筆ガイドライン(就業規則)を確認(吉岡)
    • 会社の宣伝にもなるということで、就業時間外に書いて社内リソースを使えるコースに
  • 7月、オライリーから稟議の返事なし(安部)
    • 6月末に目次案を出した
    • 3週間たっても返事がない
    • Goの連絡がキター
    • ちょうどオタワのLinuxシンポジウムに行っていたとき
      • →島本に参加してもらう
  • コンセプト(吉田)
    • トラブルシューティングや単純なコマンドは対象外なのでボツ
      • ネタは持っていたのだけどw
        • NICのドライバが死んだときにモジュールを読み込みなおしてしのぐ、とか
  • 「Linux Debug Hacks」という書名はボツに(吉岡)
    • 出版後にツッコまれたw
  • ゴキブリの表紙はボツw(大和)
    • ほか、バグ取りホイホイとか蚊取り線香とか
  • 9月ごろから執筆(吉岡)
    • 就業時間外
  • 原稿はgitで管理(安部)
    • 分散管理
    • 便利
    • Hackネタでもgit bisectとかやりたかったけどボツに(吉岡)
      • 僕がbisect嫌いなのでw(安部)
        • どんどん深みにハマるので
  • commit数の推移(大和)
    • 2月に校正大会
    • テスト勉強と同じで、みんな最後に集中してcommit w
      • 12月はcommit数が落ちた
    • 自分の場合、簡単なものからコンスタントにやっていたが、途中から疲れたり、再現が難しかったり(大岩)
    • 吉岡は1月までほぼcommitなしw
      • 夏休みの宿題を8/30にやるタイプなのでw(吉岡)
    • 大和はほぼコンスタントに(吉岡)
  • 月曜日に編集会議(吉岡)
    • 相互レビュー
    • 勉強になった
    • どうやって知ったか、などが最初書かれていなかったので、ツッコミ
    • かなり激しいツッコミをもらった(吉田)
      • 毎週勉強会を開いていたようなもの
  • リモートでの作業(島本)
    • 全体がどうなっているかわからない
      • 最初は、スケジュールも本数もわからなかったw
    • gitリポジトリは外部から使えなかったので、ミラクルの人に依頼
    • 12月ごろにはMLも流れなくなって不安
      • いっぽう校正大会の時期はMLがばんばん
  • 美田は、あまり詳しい話を聞かずにさくっと参加してくれた(大岩)
  • ボツネタ(安部)
    • Crashモジュールを使って楽してデバッグ
    • tcpdumpでデバッグ
    • ベンチマークツール集
  • 編集、校正(吉田)
    • 「2月中に原稿をいただかないと、4月に出せませんよ」とオライリーさんの催促
    • 建国記念日に校正大会
    • 章構成が変更に(5章→6章)
    • 用語の統一
      • 苦労して直したつもりでも、最後に編集さんから赤が
    • Hack数を64個にするはずが、数字がダブっていて65個にw(後にさらに1個追加)
  • 締め切りだけど吉岡の原稿が…w(大和)
    • しかも大分出張
    • 締め切り間際に編集者さんに電話したら、ちょっと怖かったw
  • 4/21に見本誌がミラクルに到着(吉田)
    • Tシャツも
  • 4/23にDebug Hacks Conference開催(吉岡)
    • 100人の枠が1日で埋まる
    • 最終的に140名枠、120人ぐらい来場
    • 会場100冊完売
    • Tシャツも100枚売れた
  • 今後の野望(吉岡)
    • Japan Linux SymposiumでBOF
    • 英語版など
    • 書ききれなかったネタで2nd
    • Debug Hacks Conference 2010

Q&A

  • 各Hackの担当は
    • 最後に小さく書いてある
  • 声をかけた出版社はどのぐらい?
    • 数社
    • オライリーさんが一番反応がよかった
    • ミラクルのマーケさんが出版社に売り込んだときに、伝言ゲームで、著者の思いが伝わらなかったかも
  • 会社としての制約は
    • デバッグの技法は会社ではなく人やコミュニティのもの
    • 会社の宣伝にもなる
      • プレスリリースも出した
  • 印税は
    • ページ数に比例して分けた
    • コントリビューターさんはHack数単価でお願いした
  • 事前に用語を決めるとかは
    • 最初はちょっと決めた…はず…だけど、書き出したらそれはどこかにw
  • 会社の広報の査読は
    • してもらえなかったw
    • そんなことは夢にも思わなかった(マーケさん)
  • オープンにしたりは
    • 気持ちはある
      • が出版という形態との組み合わせはどうか
    • 本というメディアはあなどれない
    • 元ネタや発表資料は公開している
    • ひとりでも多くの人に読んでもらいたい
      • 図書館にもぜひリクエストを
  • プライベートや家族の問題はw
    • モチベーションがなくなることはなかった(大岩)
      • 一人でやってたら折れていたかも
    • 自分は早起き体質で、奥さんが遅いので、奥さんが起きるまでに作業w(大和)
    • 家族サービスはふつうにやらされた(安部)
    • 奥さんの理解があった(島本)
      • でもドライブにつれていったり
    • 独り身で楽だった(吉田)
    • 私はプレッシャーは…(一同w)(吉岡)
      • 私の貢献は手配師的なあたりで

「シンプリシティの法則」

シンプリシティの法則
ジョン マエダ
東洋経済新報社
売り上げランキング: 3299

 iPodやGoogle検索のユーザーインターフェイスは、シンプルさと機能性を兼ねそなえていて、カッコいい。これを世界中の人が見習おうとしているのだけど、なかなかうまくいかない。本書は、そんな、シンプルであることを守り成功するための心得を書いたエッセイ。

 著者は、コンピュータとデザイン、グラフィックなどを組みあわせた分野で第一人者の人…だそうな。「新春座談会 このコンピュータ書がすごい2009」で紹介されて気になり、ようやく読んだ。

 「法則」といっても、こうすれば成功できるというハウツーのマニュアルじゃなくて、考えるためのヒントを与えてくれる本だと思う。禅というか。

 すでに多くの人が本書について語っているので詳細は略。コネタとしては、「私はiPodを持っているが、もうあまり音楽を聞いていない」(p.95)と。

 以下、本書を読まないと役に立たないであろう、目次がわりの自分メモ。

  • 削減:サイズを小さくする、隠蔽する、そのうえで具体化する
  • 組織化:ぼんやりとしたグループ
  • 時間:どうすれば待ち時間を短くできるか、どうすれば待ち時間を我慢しやすくできるか
  • 学習:学習の敷居を下げる
  • 相違:シンプリシティとコンプレクシティのリズム
  • コンテクスト:道に迷わない安心感、道に迷う楽しみ
  • 感情:愛着
  • 信頼:システムについて知らなくてもよいようにする
  • 失敗:決してシンプルにできないこともある
  • 1:予想のつかない動き
  • アウェイ:あちら側
  • オープン:API
  • パワー:電源はめんどう
  • 人生:テクノロジーはenablerであると同時にdisablerともなりうる

追記2009-05-28:amazletリンクを忘れてたので追加。

Temtter + expand-tinyurl + Ruby 1.9で文字コード異種結合のエラーになるとき

 RubyとかGithubとかgitとか、よくわかってないので、ブログでメモ。

 TermtterをRuby 1.9で動かしているときに、たまに文字コード異種結合のエラーをくらっちゃう。

in `gsub!': incompatible character encodings: UTF-8 and ASCII-8BIT (Encoding::CompatibilityError)

 これは、違うエンコードの文字列をつなげたりしようとしたときのエラーみたい。条件を追ってみると、expand-tinyurlプラグインを組み込んでいて、tinyurlから展開したURLに8bit文字が入っている場合に再現する。たとえば、「http://tinyurl.com/de5my6」から展開したURLとか。

 ソースを追ってみると、こんな感じみたい。

  • termtter(の呼ぶrubytter(の呼ぶjsonライブラリ))は、Twitterから受け取ったJSONテキストをUTF-8文字列とする
  • expand-tinyurlは、文字コード処理を特にしていないので、8bit文字があるとASCII-8BIT文字列とする

 とりあえず自分用には、

res['Location']

って返しているところを、

res['Location'].force_encoding(Encoding::UTF_8)

ってしてみたんだけど、Ruby 1.8との互換性はどうしよう。とりあえずこんなふうにしておけば逃げられるけど、こんなのプラグインの中に書いていいのかな。

unless String.public_method_defined?(:force_encoding)
  class String
    def force_encoding(enc)
      self
    end
  end
end

 いちおう、Githubにも

追記2009-05-12

 Ruby 1.8で動かしてみたら、Encoding::UTF_8が定義されてないよ、って言われちゃった。そりゃそうだ。修正

「砂の女」

砂の女 (新潮文庫)
砂の女 (新潮文庫)
posted with amazlet at 09.05.05
安部 公房
新潮社
売り上げランキング: 43854
このまま暮していって、それでどうなるんだと思うのが、一番たまんないんだな

 初夏の陽気になり、ふと読み返したくなって、久しぶりに読んだ。昭和30年代の真夏、海辺の砂浜の物語。

 砂に埋もれかけた家や、それを守る女との暮しに、主人公と同じ誕生日の安部公房が描いたものは、なんだったんだろう。

追記2010-06-19

上で思わせぶりに書いてるのは、つまり氏の亡くなったときの状況について。あと、本書でいつも思い出すのは、「マルタの鷹」のフリトクラフトの挿話。

「RIDER」

RIDER (ライダー) (Motor Magazine Mook)
東本昌平
モーターマガジン社
売り上げランキング: 2136

 東本昌平の短編集。「B.O.R. (Blue Heart Rocket Boy On Red Rose Speedway)」がいいね。エロ話だけど。

 「CB感。」の原型の短編も収録。

「仮面ライダーSPIRITS」16巻

 ストロンガーのアメフト(ラグビー?)攻撃がアツくて、らしいなぁ。

 アマゾンとZXの異色ダブルライダーもキメる。「ダブル天然に負けてられっかあ」w

 巻末のインタビューは、アマゾン役の岡崎徹氏。撮影現場のエピソードが、本当にワイルドで、まさにリアルアマゾン。

第95回カーネル読書会を聞いてきた

 Linuxのカーネルよりの勉強会である「カーネル読書会」に参加してきました。

 今回のお題は、「Linux Collaboration Summit出張報告」。自分の興味としては、情報端末向けディストリビューションのMoblinがメインだったので、Connection Managerなど興味深く聞きました。電源管理関連の話も興味深く、カーネル読書会ってCPUまわりの省電力機能の話で盛り上がるなぁと思いました。

 以下、メモ。

全体報告(鈴木さん)

 私は、終わったころに着いたので、残念ながら聞きそびれ。

Moblin(天野さん)

  • MID、ネットブック、車載情報端末など
  • v1 Ubuntuベース
  • v2 Fedoraベース
  • 2009.4 Linux Foundationに移管
  • Kernel 2.6.29(CONFIG_FASTBOOT=y)
  • librest
    • -RESTライブラリ
      • Webサービスのサムネール画像のサムネールビューア(デスクトップ)を10数行で
  • Connection Manager(connman)
    • -ネットワーク管理ユーティリティ
      • NetworkManagerの拡張が困難なので、スクラッチから
      • IPアドレス割りあて(DHCP、static)、接続方式(lan、wlan、modem)、通信方式(inet、ppp)などをプラグイン形式に
        • 必要最小限の機能だけロードすればいい
      • VPN接続には今後対応
  • Clutter
    • OpenGL上の3D UIライブラリ
  • CELF
    • Japan Tecchnical Jamboree 27(5/22)
      • Japan Tecchnical Jamboree 28(6/12) 大阪
  • Moblin Compliant規格
    • ライブラリ、起動時間(性能)など
  • (会場)LSBは?
    • -調べてみないとわからない
      • おそらく準拠

Gree IT(大岩さん)

  • ITによる電力削減
    • ペーパーレス、電話会議など
  • ITの電力削減
    • 電力消費を削減する
  • データセンターのGreenIT
    • ITというより建物
  • サーバーのGreenIT
  • デスクトップのGreenIT
    • Linuxの省電力機能が(あるのに)使われていない
  • ネットワークProxyサーバー
    • ARP要求などにPCではなくアクセスポイントが答える
      • ノートPCはアイドル状態でいられる
    • プロトコルの規格化が進行中
      • 2009年予定
    • IEEE802.11vにもある
      • 2010年予定
  • mc/ smt power saving policy
    • CPUの省電力ポリシー
    • スケジューラに省電力ポリシーを追加
      • 負荷が高くなければ、特定のCPUに処理をまとめ、ほかをスリープ
    • Linux実装済
    • 割り込み、タイマーも
  • Powertop
    • アプリケーションの起床回数を表示するtopコマンド
    • アプリを改善するため
  • デバイスの省電力
    • 効果がわかりづらい、測定データが公表されていない
    • 0.01Wであればほかを優先、10Wであれば対応
    • 計測
      • Tickless Idle
      • cpufreqデーモン
      • HDDのスピンダウン
      • バスパワーUSBデバイス(マウス)
      • ハイバネーション
      • rf_kill(sysfsにある)で無線をオンオフ
      • xbacklight(液晶のバックライト)
  • サーバーの台数が増えると効果
    • Googleは1万台以上
    • Oracleは4万台(うち7割がLinux)
  • NICまわりを計測してみた
    • LANケーブルをはずした影響
      • e1000、e1000eはLANケーブルをはずすと消費が下がる
      • e100は下がらない
        • パッチを作った
          • リンクアップを監視するe100_watchdogが2秒ごとに動作している
            • リンクダウンなら10秒ほどsleep
          • 消費が増える結果にw
            • この失敗をあとの参考にしようw
          • 会場:
            • FAIをチェックしちゃっているのでは
            • リンクアップの割り込みをとればいいはず
              • 念のため10分ぐらい間隔でチェックしてみるとか
            • Gigabitはコントローラが電力を食うので、落とせるときは落とすようになっている
    • ifdownした影響
      • ifdownしても電力が下がらない
      • パッチ
        • 下がった
  • 組み込み機器は省電力技術が活用されている
    • リモコンとか
    • このへん、応用が効くのでは
  • JP1などの大きな管理のツールがOSSにはない
  • スイッチの電力をコンピュータからコントロールするのもアリでは
  • (ustから)rmmodすると?
    • 下がらなかった

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

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

Monthly


FC2Ad