fc2ブログ

本を読む

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

「あたらしい朝」2巻


 完結。なんというか、思っていることと、そのときの現実と、それでどういう方向に転がるかとは、それぞれ別物なんだよな、とかなんとか。つまりいろいろあったと。

 最終話は駆け足になってるんだけど、最後はストーリーを追わず語らずに途中の出来事を想像させている手法が印象的。

 あと黒パンおいしそう。

「Shibuya.lispテクニカルトーク #6」観覧

「Shibuya.lispテクニカルトーク #6」観覧

 Lispコミュニティ「Shibuya.lisp」のテクニカルセミナーイベント「Shibuya.lispテクニカルトーク#6」が開催されました。今回も興味深く話を聴かせていただきました。いろいろ面白かった中でも、自分は特にMOPの話を興味深く聞きました。いや理解できてませんが。

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

記号処理言語と記述言語(大野邦夫)

  • ELISの開発や事業展開にかかわった
  • 復活祭
  • 若い人に語り伝えたい
  • 記述言語=マークアップランゲージ
  • 大学は機械工学
    • 1年後輩に官直人氏w
    • 学部:冶金材料の研究
      • 熱伝導を電気伝導で計る
    • 大学院:ボールベアリングの自励振動の研究
  • NTT
    • 現場の技術の問題点をフィードバックする部門
      • クロスバー交換機の接点消耗予測
      • 1990年代までクロスバー交換機は残っていた
    • プリンタ、マウス
    • ELISの商品化
  • ジャストシステム xfy
  • 最近になってアカデミックの世界に
  • LISPに関わったきっかけ
  • 通信端末にAI?
  • Winstonの本でLispに出会う
  • エキスパートシステム
  • Symbolics 3600
    • ほしいリストにあげたら、アメリカが製品買えという圧力で、買えたw
    • 富士Xeroxの人もSmalltalkマシンよりいいとかなんとか
    • Flavor
    • CSKのKEE
      • Symbolicsユーザーに無償提供
      • 意外に使いにくかった
    • KEEで接点消耗予測システムを実装
      • エキスパートシステム
  • ルールシステムへの疑問に
    • ルール競合を排除すると決定木
    • ルールより決定木?
    • MGSS(Menu Guided search shell)の開発
      • Yes/Noの命題をノードにする
    • 研究者はAIじゃないというが、実用システムは価値基準が異なる
  • オブジェクト指向による非扇形微分方程式の解法
    • 微分方程式を解くよりは解のカテゴリを知ることが重要
    • 振動:減衰するか、発散するか
      • 条件分岐をサブクラスとして定義
    • TAOで
      • 計算のときはTAOのオブジェクト指向の中置記法が便利
  • 接点寿命予測エキスパートシステム
    • 影響を与える要因
    • MGSSで
    • CLOS
  • あとで学位
    • 論文にはELISの回路図も
  • NTT-ITでのELIS事業に
  • MOT
    • 基礎研究→実用化→商品化→市場制覇
    • ELISはあまり特許とか論文とかなかったw
    • ドキュメントも少なくて上に起こられたw
      • 人が直接情報を伝達していた
  • ELISの顧客
    • NTTグループ
    • 大手企業の研究開発部門
    • 大学、公的研究機関
    • 医療検査システム
      • ELISのPrologは速かった
    • 建築設計システム
      • ほかで動かなかったのがTAOならすんなり動いた
    • Lispでのマルチタスクが制御系で関心をもたれた
      • ELISボードを複数並列で使う研究も
  • GUIまわりの評判がよくなかったw
    • 東京電機大に、Interlisp-D互換ツールを提供
  • Interleaf
    • 1980年代のDTPのハイエンド製品
      • 3000万円ぐらい
    • 作者はヘーゲルの研究家で「ドキュメントは弁証法的に発展する」という考え
    • XとNFSを利用
    • Lispによるオブジェクト指向技術
      • 単一継承
      • クラスを生成する関数の返りをsetqしてクラス名と結びつける
      • 関数を定義してオブジェクトに登録
    • Interleafの文書モデル
      • DOMのようにツリー構造で扱う
    • SGML処理系の最初の製品はInterleaf Lispで実装された
  • SGMLデータブレード
    • マルチメディアDBでSGMLエレメントを管理
  • Lisp教育
  • モデルからWebまでのジョブカードの実装
    • UML→CLOS→S式→XML
    • 難しい
    • S式の部品化
    • 連想リストをXMLに変換
    • XSLTでWeb表示
    • mix-in
    • 記述言語、オブジェクト指向言語、プログラミング言語の役割分担
    • ジョブカードは仕分けされちゃったw
  • Q: S式でどのぐらい記述量が減る?
    • A: だいたい3割ぐらい。終了タグがなくなるだけで短くなるw
  • Q: UMLからCLOSへの自動変換は
    • A: やっていない
  • Q: 微分方程式でのLispの(当時の)優位性
    • A: オブジェクト指向の継承による拡張性、グラフィック表示など。Mathematicaより速かった
  • Q: 教育でLispを使う抵抗があると聞くが
    • A: そういう先入観のない人に教えているw。教官のほうが抵抗感がある

CLOS/MOP入門とOWL Full処理系開発事例紹介(小出誠二)

  • CLOS
    • 西海岸はシーロス、東海岸はクロスと呼ぶらしい
  • 主にFlavorとLOOPSが元になった
  • MOPはANSI Lispには入っていないが、たいていの処理系に入っている
  • MOPの書籍
  • "Object-Oriented Programming: The CLOS Perspective"
    • 概要だけ
  • "The Art of the Metaobject Protocol"
    • 実装を知りたければこれ
  • CLOSは本当にオブジェクトシステム?
  • 否定論
    • 隠蔽がない
    • メッセージパッシングがない
  • generic functionは名前とarityが同じメソッドの集合
    • 一級オブジュクト
  • 引数のクラスで起動メソッドが決まる
  • 隠蔽
    • LisperはLisperを信用するw
    • 能力の低い人はLisperになれないw
  • CLOS標準プロトコル
  • CLOSのベース
  • クラスベースシステム
    • インスタンス生成を生成するにはクラス定義が、クラスを定義するにはメタクラス定義が必要
    • インスタンスの属するクラスは1つ
    • スロットはクラス定義時に定義
    • などの制約
  • MOP
    • CLOSの内部構造が解放されている
  • ACLの内部コードで説明
  • make-instance
  • initialize-instance
    • shared-initializeを呼んでいる
  • reinitialize-instance
    • インスタンスの再定義
    • これもshared-initializeを呼んでいる
  • make-instanceに複数のクラスを指定できるようにする
    • 意味論として多重継承と同じ
  • 未定義スロットを自動定義
    • メタクラスを継承して自分のメタクラス
    • mop:standard-direct-slot-definition
      • スロットを定義するクラス
    • direct-slotsに入れる
    • mop:finalize-inheritance
      • 継承したスロットを決定
      • これをもう一回呼ぶ
  • メソッド修飾子
    • primary、before、after、around
    • 就職子のないのはprimary
    • 引数に手を加えるときにaround
  • メソッド結合
    • 修飾子と継承による、メソッド呼び出しの順番
  • reinitialize-instanceの:afterで、継承クラスにすべて適用
  • 名前つきインスタンスをできるようにしてみる
  • :nameスロット
  • Class Precedence List
    • クラス優先リスト
    • 包摂律、遷移律
  • クラスが自分のインスタンスを知っているようにするメタクラス
  • 多重継承
    • finalize-instanceしたときに決定される
    • 半順序・全順序
    • トポロジカル・ソート
      • くわしくはCLtLを
    • mixin(Flavor)
  • 実効スロット定義
    • スロットの定義もMOPでいじれる
    • 実装によって大きく違う
  • リフレクション
    • 言語の実装を変更
    • 無限のシステム階層が必要
      • 3Lisp
  • CLOS/MOPでは
    • standard-classのクラスはstandard-class
    • ループで無限階層
    • ラッセルのパラドックス
  • TwistedRelation
  • Semantic Web Layer Stack
    • ACLならUnicodeが使える
    • その上をすべて実装した
  • これから
    • Web Service Discoveryは総称関数として扱う
    • Linked Open Data (LOD)
    • Common Logic
      • OWLの限界
  • Q: OWL。数学的な厳密性に欠ける。
    • A: 私の考え。RDFは厳密な意味論。OWLは3種類。OWL DLは厳密だが実用性に欠ける。OWL FullはRDFベース。OWLはDL派が牛耳った。厳密的すぎる
  • Q: ラッセル。自己参照を避けるために型。
    • A: 神学論争になるのでw。ラッセルのパラドックスはさまざまな方法で回避されている

Lisp今昔物語(安村通晃)

  • 自己紹介
  • 大学院
    • Pascal処理系。Lispは全然
  • 日立中研
    • スパコン
      • 実習で作ったプログラムが実戦投入w
      • スパコンコンパイラ
    • Lisp処理系
  • SFC
    • スーパーファミコンと同じ年にできたw
  • 昔話(1)
  • 高速Lispコンパイラの開発(日立中研)
    • 第5世代コンピュータプロジェクト全盛の時期
    • 「Lispは遅い」という先入観を覆したい
    • UtiLispをターゲットに
  • HiLisp処理系
    • 大型機(M280H)のパフォーマンス
      • でも今のパソコンから見ると全然w
    • 中間コード経由のコンパイル
      • 中間コードLcode
      • LAP(アセンブラ)
    • 最適化
      • 呼び出し先ごとに最短命令生成、末尾再帰のループ化、インライン展開、自己再帰関数の自動展開
        • ハードの技術者が近くにいたので、パイプラインのボトルネックなどがわかった
    • 型判定の最適化
    • 局所最適化
      • 分岐命令の最適化、不要なスタックチェックの削減、パイプラインを意識した命令の並べかえ
  • 対UtiLispでベンチマーク
    • だいたい勝った
  • 対Pascalでベンチマーク
    • だいたい勝った
    • 浮動小数点数や配列は負けた
  • 昔話(2)
  • Lispのプログラミングパラダイム
  • 従来のプログラムを高水準化し、プログラム変換によって高速化
    • prog、go、setqを使ったコードを、再帰呼び出しのコードに
    • 末尾再帰をmapを使って高水準化
      • 組み込みのmapの速さ
    • Portable Prolog
      • 大域変数をやめて、多値
    • tarai関数をクロージャで遅延評価
      • 3000倍の速度
      • 呼び出しを遅延し、比較でforce
  • Lisp都市伝説
    • 「Lisperには紅茶好きが多い」(米国)
    • レストランで「Coffee?」と聞かれて「t」と答えるw
  • 講義としてのLisp
    • 理系・文系の区別のない授業
    • SICPは数学の例題が並んでるのでダメ
    • Lispの表現力を伝えたい
    • Cに慣れていないほうがいい
    • 代入やループを避ける
  • 2回目でリストとコンスセル
  • 課題:自然言語、ボードゲーム、数学的ゲーム、パズル、など
  • これからのLisp
    • 日曜プログラマーがもっとLispでお手軽プログラミング
    • シンタックスシュガー化したLisp
    • ほかの言語にあまりない多倍長演算、複素数、クロージャなど
    • 軽量な実行環境。組み込めるもの
    • マルチメディア処理
  • これからのプログラミング
    • 家事、ロボットへの指示、建築、アート、脚本、人生設計
  • PascalとLispの比較
  • Programming 2.0
    • 意味論指向
    • 認知的
      • 論理的じゃなくて
    • ユーザ主導
    • エラーフリー
      • スルーしろよw
    • 許容、いいかげん
    • 太っ腹
  • 情報処理学会のプログラミングシンポジウムの発表資料
  • HMMMML(宮下芳明)
    • カッコが抜けてもセミコロンが抜けても動くw
    • すごくアバウトw
    • YouTubeに動画あり
  • Context Free Art
  • 「アルゴリズミックアーキテクチャ」
  • 洗濯物たたみロボット
  • Q: プログラム変換していいことの判断
    • A: 結果があうこと。
  • Q: 自動的?
    • A: 手動
  • Q: Programming 2.0。自然言語との融合のアプローチが必要。Simplified Technical English。
    • A: 言ったときには実装については考えていなかった。英語でrとlの区別がつかなくてもいい。
  • Q: ピジン、クレオールは異文化コミュニケーションの基本。そういう分野との関係。
    • A: クレオールは同じ考え。昔ハワイに移民した日本人。へんな英語でも通じる。HTMLもそんな感じ。
  • Q: Common LogicのDialects。意味論を決めて文法はあとで決めればいい。つながっているのか。
    • A: セマンティックスもシンタックスもぐちゃぐちゃだと難しい。どちらを重視するかというと意味論。
  • Q: 「認知的」とは
    • A: 会議とかで、正論だけど今そういう話をしているんじゃないよという意見を言う人がいる、ということ。「モーゼは方船に動物をどれだけ乗せたか」というひっかけ問題。ゲームハードの性能競争じゃない世界。
  • Q: エキスパートシステム?
    • A: 段取りはプログラミング
  • Q: プログラミングではなく自然言語?
    • A: 設計のあるもの
  • Q: 人生設計って自分でわからないものだが
    • A: 保険会社の人生設計。プログラムみたいなもの。自分でやりたい。
  • Q: Programming 2.0で、コミュニケーション力の問題に?
    • A: 飲んだくれてるときは話を半分に聞くとかw

LT:○○から始めるScheme(HAYASHI Kentaro)

  • TrackPoint 愛好家
  • Schemeとの出会い
    • Schemeのサブセットを積んだ製品から
  • Gaucheへ
    • 最近Windowsサポート強化
    • Gauche Box
  • コンパイルされたバイナリが配布されていないライブラリ
    • cygwinに依存したくない
    • ほかの言語ではActive Perlなど
    • Gaucheでもお手軽インストール
  • Gauche Nightly TesterBuilds
    • グラフィック:OpenGL、SDL、GTK+ なども
    • DB:PostgreSQL、SQLiteなども
    • 拡張子の関連付けなど
  • ダウンロード104件
    • 実はクローラからが多かったw

LT:スキーマクラフトの紹介(k_kinukawa)

  • スキーマクラフト
    • アニオマジック社
    • 光る腕輪
    • 次世代ファッション、テクノ手芸
  • Webのインターフェイスからプログラムできる
    • 光でプログラムを送信
  • コードが書ける
    • カッコの多い言語
    • defineも
    • 再帰
  • でもバグが多い
  • JSで書かれている
  • 6000円ぐらい

Gaucheを使った簡易出版システム(Yuumi3)

  • Shibuya.lispのおかげで仕事の案件が
  • 教育
    • テキストを作る
    • DTPを使うほどのことでもない
  • 以前
    • FreeStyle Wiki
    • PDFが作成できる
    • Snow Leopardにしたら動かなくなった
  • Shibuya.lisp TT #4
    • ひげぽんさんのトーク「さあ家に帰ったらSchemeのコード書いてみよう」
    • 自分が使うものをLispで
  • 新システム
    • Wiliki
    • wkhtmltopdfコマンド
    • Gaucheから操作
  • 近日公開予定

Lispで仕事をするために(nitro_idiot)

  • みんなどのぐらいLispを使っている?
    • 仕事でLisp書いている人?
      • 何人か
    • 趣味
      • 一杯
    • 仕事でLispを書きたい人
      • 一杯
    • なんで僕は仕事でJava書いてんだろう
  • ありがちな状況
    • 「ハッカーと画家」→Gaucheインストールしてみる→Kahuaインストールしてみる→SBCLインストールしてみる→SLIMEインストールしてみる→Clojureインストールしてみる→あーおもしろかった→終わり
  • 実際に使おうぜ
  • 自分ですら使わない言語を仕事で使えるはずがない
  • ロードマップ
  • Shibuya.lisp活性化
    • 実用例をふやす
      • →ライブラリやドキュメントが豊富に
    • →Lisperが増える
    • →企業が導入

多値で簡単パーサーコンビネータ(鹿野桂一郎 オーム社)

  • TeX
  • 立派なプログラミング言語
  • チューリング完全
    • FizzBuzzも書ける
  • Lispと同じく拡張可能な言語
    • Paul Grahamが言っている
      • 「ハッカーと画家」
      • 宣伝w
  • 昔、萩谷先生がdisってた
    • 「要するに馬鹿である」
  • 数値の規則
  • BNFっぽい
  • パーサコンビネータさえあれば
    • パーサコンビネータの詩
      • 「プログラミングHaskell」に書いてある
      • 宣伝w
    • 「結果と文字列を返す」
    • 多値
  • エラーも返す
    • 止まってしまう
    • conditionを定義
  • 正規表現だと辛いパースも簡単
  • 元ネタはHaskellのParsec
  • 「Scheme手習い」よろしくw

ClojureとePubで「普通のやつらの上をいく」方法(deltam)

  • ClojureからLispに入門したゆとり世代
  • 電子書籍が流行している
    • それはまったく興味ない
  • ブログでは長文が読みづらい
  • iBooksが無料で使える
    • 長文を読める環境がひろまった
  • EPUB
  • 新しいメディア
    • いままで評価されなかった文章がネットに
  • EPUBのツールは本格的で難しい
  • プレーンテキストをエディタで書いてコマンド一発でEPUBを作れればいい
  • EPUBを作成配信する一番簡単ツール
    • text2epub-clj
    • feed2epub-clj
  • ToolをGAE/Jにのせてみた
    • Clojureだから簡単
    • RSS/ATOMをEPUBに変換してPodcastに

はてな記法をローカルで書きながらプレビュー(inotify + long-poll)

 やりたいこと。

  • はてな記法のテキストをエディタで書く
  • ブラウザでプレビュー
  • テキストを保存したらブラウザの表示も更新

 毎秒監視とかでもいいけど、ためしに簡易HTTPサーバーを動かして、ファイル更新監視をinotifyで、ブラウザへの更新通知をlong-poll(comet?)でやってみた。inotifyなのでLinux専用。make_html()をさしかえればmarkdownとかほかの記法でも使えるはず。

「Software Design」2010年12月号

 特集3がLinuxのブートプロセスねたで、Red Hatの森若さんが執筆。BIOSとブートローダー、カーネルの起動と初期化、最新動向、トラブルシューティングの4章構成で詳解していて、参考になった。あと、systemdとかdracutとか名前は聞いていても特徴は知らなかったけど、概要がわかった。

 最近、就職転職系サイトで「勢いだけで辞めるのはよくない」的な話がちらほら出ているなと思ったら、特集1は転職が大変という話。IT(情シス)系とインターネット系の対比とか、大きな会社でうまくやっていてもベンチャーでうまくいくかはわからないとか。いっぽう、羽生さんの要件定義手法の話(後編)は、ひきつづきサラリーマンの不満からそれを解決する策をいかに導くかを題材にした要件分析の話。

 特集2がiOSのマルチタスクやRetinaディスプレイ、iPadなどの新機能に対応する具体的な方法の解説。iOSについては、連載記事もiPadでの違いが影響する実例を解説。

 インタビュー連載Software Designerは、WikimediaのCTOのDanese Cooper氏。現在25人とか、日本のプログラマはベストな成果を出すことにこだわりすぎるとかいう話が印象に。

 毎回、話題の意外な展開が見所のAjax/JavaScript連載は、プロファイラの話から、プロキシでWebコンテンツを差しかえるCocProxyの話に。

 Konoha連載は、静的型言語でクラス拡張やダックタイピングを実現する方法について。DB連載はインデックスの意義としくみ。インターネット技術妄想連載は、クラウド時代に求められるデータセンターと、道交法や建築基準法の影響。Android連載は、HALの扱い方。

 ほか、PostgreSQL 9.0の新機能とか、ブレッドボード上でArduino互換機とか、Silverlightのブラウザ外実行とか、YASnippetをCommon Lispのマクロに見立てた解説とか。

Make: Tokyo Meeting 06に行ってきた

 工作系イベントMake: Tokyo Meeting 06(MTM06)に行ってきました。年配の出展者の方もいる一方、親に連れられた小さな子供もたくさんいて、マニアックなんだけどほのぼのした雰囲気でした。展示内容も、電子工作やロボットから、ガスタービンエンジン、ハイテク手芸、アート系まで、幅広い分野に渡っていました。

 以下、展示からいくつか。

 藍Pad。藍染めのiPadカバーです。

RIMG0015

 テオ・ヤンセンのミニビースト。奥であおいで起こしている風で動いてました。「大人の科学マガジン」2011年1月発売の号で付録になるとか。

RIMG0009 RIMG0007

 こちらはテオ・ヤンセン機構を使った電動ロボット。

RIMG0006

 DIY女子高生まんが「ホームセンターてんこ」(KCデラックス)の会場販売も。

RIMG0002

 連立方程式を解くウィルバーマシンだそうです。

RIMG0010 RIMG0011

 ニキシー管によるオーディオレベルメーター。

RIMG0022

 エンジン駆動の犬ロボットも、飼い主(?)さんに連れられ散歩していました。

RIMG0017

 mbedでひとつの島になってて、さながらArduino vs. mbed(大げさ)。写真は、mbedでWebの時刻表を取ってきて電光表示というもの。

RIMG0025

 電子レンジで実験するワークショップに参加。スチールウールを電子レンジに入れるとどうなる?(写真左)とか、アルミホイルは? とか、電球を入れると光る? とかその場で実験していました。最後は卵が爆発(写真右。卵を耐熱ガラスで覆ったうえ、電子レンジの扉をガムテープ留めしているのに注目)。

RIMG0027 RIMG0028

 以上、はじめてのFlickr+ブログでした。

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

 第70回東京エリアDebian勉強会に参加してきました。今回はファイルシステム特集でした。

 ざっくりとメモ。

  • ext4
    • ext3上位互換
      • けっこう普及した
    • ext3のファイルシステムをext4でマウントできる
      • 順次ext4な方法で書き込まれる
      • でもext3なパラメータのままなので、ext4っぽくない
  • NILFS2
    • 追記型ファイルシステム
    • 追記していくぶんには連続的にアロケーション。SSDにいいと言われたりするゆえん
      • でも書き替えるとバラバラに。SSDにいいというのはケースによる
    • 使い勝手としては、用途にわりと向き不向きがある。アーカイブ的なものに向く
    • 連続スナップショット:すべての書き込みごとにチェックポイントとして残る
      • GCで消える
      • チェックポイントをNILFSでいうスナップショットにするとGCしても残る
    • GCがかからないと、ベンチマークしただけでディスクフルになったり
      • rmcpしても次のGCまで回収されない
    • GCはユーザーランドのデーモンからAPIを呼ぶ。自作可能
  • btrfs
    • ZFSのようなもの
    • スナップショット機能
      • サブボリュームとして扱える
    • 複数のディスクを束ねる
    • まだ地雷が残っているとか
      • ディスク使用率が上がると危険なので、workaroundとして75%とか(ケースによる)で書き込めなくしてたり
  • CEPH
    • 分散ファイルシステム
    • いわゆる分散ファイルシステムの上にPOSIXファイルシステムAPIをかぶせている
    • クラスタ管理サーバー、データの保存先サーバー、メタデータ管理サーバーの3種類のノード
    • ファイル単位で分散
      • btrfs推奨とのこと
    • 指定してやれば冗長化可能らしい

Re: man の出力から a^Ha とか _^Hx とかを無くす方法

 方法3つ。Linux(というかGNU)で確認。

方法1:lessのオプション

→が、元エントリーの追記により、要件に合っていないことが判明。

方法2:colをかませる

 ふだん使っている方法。col -bpをかませる。

$ zcat /usr/share/man/man1/cat.1.gz | nroff -man | cat -v | head
CAT(1)                           User Commands                          CAT(1)



N^HNA^HAM^HME^HE
       cat - concatenate files and print on the standard output

S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS
       c^Hca^Hat^Ht [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...

$ zcat /usr/share/man/man1/cat.1.gz | nroff -man | col -bp | cat -v | head
CAT(1)				 User Commands				CAT(1)



NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

方法3:grottyのオプションを指定

 groffのdevutf8やdevasciiのDESCでpostproに指定しているgrottyにオプションを指定する。groffの-Pオプションから。manやnroffでは指定できないっぽいのが面倒。

$ zcat /usr/share/man/man1/cat.1.gz | groff -Tutf8 -mtty-char -man | cat -v | head
CAT(1)                           User Commands                          CAT(1)



N^HNA^HAM^HME^HE
       cat - concatenate files and print on the standard output

S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS
       c^Hca^Hat^Ht [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...

$ zcat /usr/share/man/man1/cat.1.gz | groff -P-ub -Tutf8 -mtty-char -man | cat -v | head
CAT(1)                           User Commands                          CAT(1)



NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION]... [FILE]...

 以上。

「WEB+DB PRESS」vol.59

WEB+DB PRESS Vol.59
WEB+DB PRESS Vol.59
posted with amazlet at 10.11.19

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

 発売から1か月弱たったけど、メモとして。

 特集1は、HTML表示まわりの高速化。CSSのセレクタの指定による効率の違いとか、DOM構造による違いとか、画像の最適化とか、JavaScriptの性能劣化ポイントとか、Webサーバー側の設定とか、各レイヤーにわたって解説している。

 特集2は、PHP 5.3の深めのところから、中身まで。中でも、循環参照GCの解説は、電車で読んでいて乗りすごしてしまった。PHPでほかに、連載「PHP転ばぬ先の杖」は、PHPカンファレンスとかでも説明していたストリームについて図入りで解説。

 特集3はデータマイニング。データマイニングに含まれる、テキストマイニング、クラスタリング、ログデータマイニング、リンクマイニングの各分野の技術をそれぞれ解説していた。

 各言語連載は、「Perl Hackers Hub」がXslate、「Ruby in your hands」がHeroku、「つながるJava」がREST(T2Frameworkなども)、「JavaScriptの玉手箱」がデバッガや最適化ツールを意識したコーディングについて。「モダンWebインタフェース構築術」は、JavaScriptをTAP経由でPerlなどのテストフレームワークでテストできるJSTAPd。

 増井俊之さんの「データ発見隊」は、本題もさることながら、GyampのURL設計がちょっと面白かった。データ取得のURLの最後に“!”を付けると変更画面になるという、RubyやSchemeみたいな。矢野りんさんの「デザインは怖くない」は、ポイントを目立たせるための考え方と方法。「いまさら聞けないクリエイティブコモンズ」は、CCの基礎をやさしく解説。「圏外からのweb未来観測」のゲストは伊藤直也さんで、「一本釣りで引き抜かれたわけじゃない」とか。なにげに表3(裏表紙裏)のサイバーエージェントの広告に、RX7の並河さん。

レッドハットフォーラム2010に行ってきた

 レッドハット社のイベントレッドハットフォーラム2010に行ってきました。RHEL6リリース直後のため、“新製品すげーぜ”セッションが並んでいて、直球な力の入れようだったように思います。

 とりあえずセッションのメモ。

「RHEL6。最も進んだ仮想化を今日から使えます。」(レッドハット 藤田稜)

  • 最も進んだ仮想化
  • RHEL6 KVM上のRHEL6、RHEL6 KVM上のRHEL5.5、RHEL5.5上のRHEL5.5の起動速度比較
  • 6 on 6が28秒、5.5 on 6が56秒(倍)、5.5 on 5.5がもっと
  • KVMの特徴
    • 軽量・高速
      • Intel VT、AMD-V
      • それを前提に設計、実装
    • Linuxのアップストリームに完全にマージされている
      • KVMの開発者:Red HatとQumranetで50%ぐらい
      • AMD、Intelなど多くのベンダーが開発な参加
    • デバイスエミュレーションはユーザースペースのQEMU
      • 単なるプロセス
      • プロセスを管理すればいい
      • Xenとの大きな違い
      • 古くからのRHELのスキルが使える
  • スケーラビリティ
    • RHEL6で大きなスケーラビリティを獲得
    • vSphereと比較
    • Linuxが進化すればそのスケーラビリティやパフォーマンスをそのまま享受できる
    • 4096物理CPU
    • 64仮想CPU
      • Hyper-VはLinuxには1CPUのみ
    • メモリ64TB
  • cgroups
    • リソースをプロセスごとに制御
    • QEMUはユーザースペースのプロセス
      • KVMのVMも管理下に
    • Linuxではいままでできていなかった
    • QoS
  • パフォーマンス
    • SR-IOV
      • Single Root I/O Virtualization
    • フルに対応
    • 1つのHWを複数に見せるのを、HWがやってくれる
    • vhost-net
      • 従来はQEMU内のvirtio-netでパフォーマンスを稼ぐ実装
        • これだけでもかなりパフォーマンスがいい
        • が、10GbEでは追いつかない
      • カーネルの中にvhost-net
        • カーネルのコンテキストスイッチがない
    • NAIO(Native AIO)
      • AIO = 非同期I/O
      • ブロックI/O
    • Transparent Hugepages
      • Red Hatスペシャル
        • まだLinusのツリーにマージされていない
        • そろそろマージされるだろう
      • 従来、HugeTLBfsで指定
        • 起動時に確保する必要
      • 連続した領域が確保できたら自動的にhugepageとして扱う
        • デフォルトでオン
        • EPT+THP
    • HPET
      • High Precision Event Timer
    • Tickless
      • 消費電力を減らすため、CPUをできるだけ寝かせる
      • 注意
        • フルに活用すると、処理の立ち上がりが悪くなる
        • HPCなどではチェック
  • 機能
    • KSM
      • すでに動いているプロセスのページをスキャンしてマージ
        • kscand
      • 変更があればまたCoW
      • ゲストOSが同じであれば、重複も多い
      • パフォーマンスへの悪影響小さい
  • セキュリティ
    • SELinux
    • 「みなさんオフにしていると思いますが、RHEL6ではぜひオンに」
      • それほど問題にはならなくなっている
      • 自宅サーバー:MovableTypeのプラグインが問題になったぐらい
      • RHEL6ではインストーラではオフにできない
        • /etc/sysconfg/selinuxをいじればオフにもできる
      • 問題が出たらサポートへ
    • sVirt
      • VMにそれぞれSELinuxのラベルを付ける
      • libvirtがSELinuxに対応
      • ゲストOSがクラックされたときに、ハイパーバイザー経由の攻撃の可能性
        • sVirtによって攻撃を遮断
      • Virt Managerでのインストールで、「セキュリティ」で「モデル」を「selinux」に
  • RHEL 6はクラウドのOSとして大本命

「Green ITに対するRed Hatの取り組み」(レッドハット 平初)

  • RHEL6のリリーステーマに「グリーンIT」
  • サーバー1000台あれば、1台あたり1Wの節電で1kWの節電
    • 1年間で17万5200円の削減
    • RHELアップグレード費用と電力代の天秤
  • Watt is Money
  • ムーアの法則、マルチコア化
    • 発熱、冷却
    • 電力消費
  • 身近な消費電力
    • ラップトップで消費電力を計ってみた
      • 液晶のバックライト
        • 100%で33W消費、50%で31W消費、0%で27W消費
      • CDドライブにCDを入れていると7W消費
  • RHEL6の効果
    • HWに低消費電力機能がついていてもOSが対応していないと意味がない
      • アイドル時RHEL5.4→5.5→6でそれぞれ20%低減
      • フル稼働では同じなので注意
  • ACPI Deep C-State
    • Intel Nehalen以降C6ステート
      • Deep Power Down
      • 特定コアの給電停止、L2キャッシュの消費電力をゼロに近づける
  • cpuspeed
    • 周波数を動的に変更
      • コア単位で
      • 電力消費をおさえる
    • performance、powersave、userspace、ondemand、conservative
      • RHEL6のデフォルトはondemand
      • conservativeは、落とし方・上げ方が緩やか
  • Tickless Kernel
    • tickの割り込み
      • 定期的にCPUを起きてしまうのでCPUが省電力状態に移るのを妨げてしまう
    • Ticklessで妨げないように
  • relatime
    • ハードディスク
    • 最終アクセス時間を更新
    • 読み込みでも書き込みが発生してしまう
      • ウイルス対策ソフト
      • 一覧、検索
    • atimeの更新はHDDヘッドが動く
    • リードキャッシュに乗っていてもatimeの更新がかかる
    • noatimeだと、いくつかのアプリケーションで問題に
    • RHEL6ではrelatimeがデフォルト
    • 特定のときだけatimeを書き込む
      • ctimeとmtimeがatimeより新しいとき
      • 86400秒(1日)以上過去なら書き込む
    • 無効にするにはカーネルオプションでdefault_relatime=0
  • ASPM(Active State Power Management)
    • PCI-expressカード
    • 最近のNICやRAIDカードはヒートシンクがついている
      • 1GHzを超えるプロセッサーが搭載されている
    • レーンが増えると最小限電力を流し続けなければならない
    • あまり考慮されていなかった
      • 効果が見込める
    • ASPM:PCI-expressの節電のしくみ
    • 使用中でないことを検出してカードとマザーボードで互いに節電
    • 注意
      • ハイパフォーマンス状態に移るための遅延はある程度増える
      • 通常は大丈夫。HPCでは無効にしたほうがいい
    • マザーボードで対応していないものも多い
      • 今後増えるかも
    • 段階:default、powersave、performance
      • カーネルパラメータまたはsysfsで設定
  • ALPM(Aggressie Link Power Manageent)
    • SATAのコネクタのAHCI規格
    • ポート単位で給電停止
    • モード:min_power、medium_power、max_performance
      • デフォルトではmax_performance
      • min_powerとmedium_powerではSATAのホットプラグが無効に
  • EGPM(Enhanced Graphics Power Management)
    • サーバーにはモニターがつながっていない
    • でもグラフィックカードから毎秒60回信号が送られる
    • 信号と、GPUのクロックダウン
    • 最大5Wの節電
    • 複数グラフィックポートがあると、その数ぶん
  • tuned
    • 自動的にチューニングを行うデーモン
      • デフォルトでは入らない
    • Red Hatの定義したプロファイルにもとづいて
    • CPU、ディスク、ネットワーク
    • チューニングパラメータを管理
      • /etc/rc.localにパラメータを記述しなくてよい
        • あまりおすすめできない方法だった
      • 引継ぎが楽に
    • 8つのプロファイルが用意:default、desktop-powersave、enterprise-storage、laptop-ac-powersave、laptop-battery-powersave、latenccy-performance、serer-powersave、throughput-performance
      • defaultはチューニングしない
      • NICの速度、無線LAN、Bluetoothなども
    • サーバーではenterprise-storageとthroughput-performanceがおすすめ
      • enterprisee-storageはdeadlineスケジューラ
      • throughput-performanceはできるだけ割り込みのないように

「KVM対談:実機検証結果も交えて」(NTTコミュニケーションズ 石崎晃朗、日本仮想化技術 宮原徹)

  • Bizホスティングベーシックの話(石崎)
    • KVMベースのサービス
    • クラウドホスティングサービス
    • 2010年4月から
    • NTT comの各種VPN網と接続可能
    • イントラネットタイプ、インターネットタイプ、ハイブリッドタイプ
    • 略歴
      • NTTサイバースペース→NTT OSSセンタ
        • Linuxカーネルをいじる
        • Xen、KVM
      • Bizホスティングの設計なども
      • 2010年 NTT comへ異動
  • 実機検証結果(宮原)
    • 日本仮想化技術
      • 4年
      • 仮想化の設計・運用・保守
      • 仮想化はあくまでインフラの中の一部
      • 上から下までワンストップでサポート
    • pgbenchによるCPU+メモリ性能検証
      • PosgreSQLをベンチマークするソフト
      • HP DL380 G7/G5
      • G5はVMM数が多いと急激に落ち込む(CPUのオーバーコミットメント)
      • CPUのオーバーコミットメントをやらないかぎり、きちんと性能が出る
    • HTもある程度効果
      • 推奨はオフ。特にマルチテナント
    • netperfによるネットワーク性能検証
      • 性能出る
      • 10GbEのHT ONで落ち込んだ数字も
        • 偶然かもしれないが
      • Fedora 13ベース(RHEL6を見据え)、チューニング
        • 少しカーネルパラメータを変えた
        • インテルのNICのオフロード
      • チューニングしないと3~5Gbまで
  • (宮原)
    • KVMを採用する利点:作り込み
  • (石崎)
    • 既存のものでは管理しきれない
  • (宮原)
    • 設定管理するツールが設定ファイルを上書きすると、自分の設定が上書きされてしまったり
  • (石崎)
    • Bizベーシックもそこが重要だった
    • ボンディングの複雑なネットワーク構成
    • 既存なものでは対応できない
    • ストレージ構成
      • iSCCIマルチパスの上にLVM、その上にqemu device model
      • 複雑
    • 独自のオペレーションのシステム
    • 1つのコントロールパネルから操作
    • PHP等で開発
  • (宮原)
    • Linuxでワンストップで作れる
    • Linuxのチューニングノウハウが発揮できる
    • 管理ツール vCenterのツールがいい人と、自分で作るほうがいい人と
  • (宮原)
    • なぜKVM? VMware多い
  • (石崎)
    • 私がかかわったときにはすでにKVM
    • Xenとの比較もされた
    • Xenがメインラインカーネルに入らない、KVMは入る、きれいな作り
    • VMwareは中がみれないので障害などのときに後手に回る
  • (宮原)
    • そこまでやる会社は少ないけど
    • オープンソースに力を入れている?
  • (石崎)
    • いちばんはコストw
    • VMwareのホスティングもすでにやっていた。それと違った層に向けるという意味もあった
  • (宮原)
    • 不安要素
  • (石崎)
    • RHがKVMということでスタート
    • 当初はKVMも枯れてなくてバグが多かった
    • 5.4ぐらいで安定した
    • ベータで中を見たり検証したりしていた
  • (宮原)
    • KVMを実運用で使っている人挙手(→会場1割ぐらい)
    • Linux中心にやっている人にとっては、上から下までひとつですむ、というメリット
      • WindowsでHyper-Vがやりやすいのと同じ
    • 開発や運用で大変だったところは
  • (石崎)
    • ユーザーのOSの中は見ないというサービス
    • が、中を見ないと障害を解析できない、という場合も
      • kvmとQEMUとゲストOSが連動してトレースできない
      • 状況証拠でやるしかない
      • 長いスパンが必要になったり
    • 外からモニタリングできるといいが、セキュリティなど難しい
  • (宮原)
    • ユーザーの評価
  • (石崎)
    • まだ入ったばかりなのでw
    • こみいった構成がとれるのは強み
  • (宮原)
    • コミュニティなどで情報共有がもっとあってもいい
    • ノウハウ
    • 先駆者だと大変だったのでは
  • (石崎)
    • ソースコード見たりw
    • KVMのML
  • (宮原)
    • 内側をみれる人の数
  • (石崎)
    • NTT OSSには何人かいた
    • アメリカは中を見て使う人が多いが、日本ではそのまま使う人が多い
  • (宮原)
    • パッチも想定?
  • (石崎)
    • 想定している
    • iSCSIのバグなど。パッチをあてないと運用できない
  • (宮原)
    • クローズドの製品だと質問が海を往復しないと帰ってこないということも。船便かよと
    • 自分たちで手を入れられるOSSのメリット
    • チューニングができるのも大きい
      • ドライバ
      • パラメータ。基本的にはLinux。特殊な技能は必要ない
      • でもそこまでLinuxをいじれる人が少ない?
  • (石崎)
    • そこがハードルかも
  • (宮原)
    • いろいろなクラウドベンダーでの話
    • ユーザーが、Linux、PHPからネットワークまでアドバイスできる必要
    • クラウドベンダーは箱と線のビジネス
  • (石崎)
    • コストを下げる
  • (宮原)
    • ローカルストレージでなくiSCSIにした理由
  • (石崎)
    • ライブマイグレーションが要件にあった
  • (宮原)
    • ストレージの性能をあげる必要
    • FusionIO、FlashCache
    • ローカルのSSDを1.5次記憶にしていくとか
      • 元DB屋なのでオンメモリは怖い
    • LVMにかますと面白い?
    • 仮想化の単純比較の時期は終わった
    • お客さんは、目的がばらばら、ホットスポットがばらばら
  • (石崎)
    • テストツール、ベンチマークとりづらい
    • 観点がばらばら
  • (宮原)
    • すべてクラウドで統合という声もあるが、そのスイートスポットにぴたりはまるのは少ないと考えている
    • 松・竹・梅などのメニュー
    • 1個で対応するのは難しい
    • 多様なニーズ
    • 各社と仕事をして、KVMは実用レベルになっているか?
  • (宮原)
    • いちどVMwareやXenで組んで、ひと段落
    • あとは、いかに差別化して売っていくか
    • そのための道具としてKVM
    • 完全にフリーライド指向なのも見うけられる。よくないと思う
      • どんだけCentOS?w
      • 使い分け
      • 誰かが作ってくれたものを食いつぶしている感も
    • レンタルサーバーの二の舞はやりたくない、という声
      • ふたを開けるとやはりコスト競争になっている
    • コストのため自分でやって中途半端になっている例
    • 今後、おもしろいものもできてくるだろう
    • おもしろいと思っているものは?
  • (石崎)
    • スイッチと連係
    • 帯域制御
    • できるようになってきた
  • (宮原)
    • ストレージやネットワークの制御ができる展示も今日やっている
  • (石崎)
    • 冗長化したいという声
    • ただ遅延の問題も
  • (宮原)
    • DC間でDRBDできないか
  • (会場)
    • QEMUの不安は?
    • バージョンが枯れていない感じも
  • (石崎)
    • KVMからQEMUへのマージ
      • 安定して開発されるようになった
    • エミュレーションが読めないことも
      • Windowsは中が見られないし
  • (宮原)
    • QEMUを開発しているフランス人が仕事を探していた
    • 重要なコンポーネントなので、もっと開発体制がしっかりするといい
    • もっとリスペクトとコントリビューションを
  • (twitterから)
    • 課金は
  • (石崎)
    • 月額
  • (宮原)
    • 今後、社内クラウドではアカウンティングが必要になるだろう
  • (石崎)
    • そこまではやっていない
    • 容量課金
  • (twitterから)
    • 運用オペレーターに特別な訓練?
  • (石崎)
    • 管理コンソール
    • KVMを直接さわることはない
  • (宮原)
    • 管理コンソールはフルスクラッチ? 流用?
  • (石崎)
    • フルスクラッチ
  • まとめ
    • (宮原)RHEL6で本格的にKVMが使える雰囲気に
    • (石崎)KVMはVMwareよりシンプル。さわってみてほしい

WDE 2010でオバマキャンペーンサイトのWebデザインの話を聞いた

 Web Directions East 2010のカンファレンスに参加してきました。

 オバマ大統領の選挙キャンペーンサイトでデザインディレクターだったScott Thomasさんのセッションから、政治的やエモーショナルな話じゃなくて、Webデザインにかかわる部分のメモ。

  • 重要なのはデザイン技法やWeb技術じゃなくてコアミッションを理解すること
  • 米国は州によって考え方がぜんぜん違う
    • 多様性
    • すべてを網羅するような幅広さを持ちつつ、コアとなるメッセージを訴える
  • それぞれの要素をつくりこんだ
    • Persuade、Raise、Activate、Localize、Represent、Educate、Introduce、Connect
    • それぞれをコンテンツモジュールにした
    • 一画面に入れて長くすることで情報量を多くした
      • 直線的にスクロールするだけで見ていける
  • 色やタイポグラフィの一貫性
  • 青のイメージ、重要
    • 空のイメージ
    • 最初明るい青にした
      • 雲っぽいのでボツ
    • ダークに
      • 軍っぽいのでボツ
    • ほかの色もいれて採用
    • 実はキャンペーンの間、青をどんどん明るくしていった
      • わくわく感
  • アクセス解析による改善
  • 米国では悪名高い制度があり、投票するには有権者登録しなくてはならない
    • 複雑な手続が必要、よくない
      • 面倒がって投票しないような人に投票してもらう
    • 登録を助けるサイトを作った
    • とてもシンプルにした
      • ステップ数がありすぎる
      • 年齢を聞いて、高齢者と出た後に、大学生かと聞くのはおかしい
      • シンプルにするためには、たくさんの組み合わせを考えた
    • 住んでいるところで登録してください、というメッセージ

「日経Linux」2010年12月号

 恒例のフリーソフト特集号。私もちょっとだけ執筆に参加させていただきました。私が担当したのは以下のソフトです。

  • JOSM:フリーな地図のOpenStreetMapを編集する
  • termtter:端末上でTwitterを使うためのソフト
  • jhead:写真のEXIF情報をコマンドから操作する
  • ibus-skk:変換を細かく指定できるかな漢字ソフト
  • Hugin:複数の写真からパノラマ写真を合成するソフト
  • NeverNote:メモ管理サービス「Evernote」を使うクライアント
  • ack:ソースコードをgrepより便利に検索するソフト
  • GPSBabel:GPSロガーからデータを取り込むソフト
  • etckeeper:/etcディレクトリをバージョン管理ツールで管理
  • graph-easy:四角を線でつないだ図をテキストで簡単に描くソフト
  • nginx:高速軽量なWebサーバー
  • pwgen:ランダムだが覚えやすいパスワードを生成するソフト
  • SLIME:Emacs上でCommon Lispを開発
  • Wiki on a Stick:サーバーなしでWikiを体験できるソフト
  • awesome:タイル型のウィンドウマネージャ
  • esmtp:デーモン不要のMTA
  • Fastladder:サーバー型のRSSリーダー
  • fbterm:コンソール画面で日本語表示する
  • GNOME Do:キーボードで操作できるランチャー
  • howm:Wiki風にリンクされたメモをEmacsで書くソフト
  • qwikWeb:メーリングリストとWikiを連動可能なサーバー
  • rvm:複数バージョンのRubyを切り替えて使う

 わりと小物ツールというか、自分がふだん使っているものや、使ったこともあるものから選びました。なお、nginxの項の文中で「Flightpd」とあるのは「lighttpd」の誤りです、すみません。ほか紹介されているソフトをぱらぱらと見て、へーこんなソフトもあるんだといくつか参考になりました。

 あと、Ubuntu 10.10登場のレポート記事を2p書きました。まぁ、一般的な内容です。Ubuntuといえば今回、2年前のUbuntu概説記事が別冊で再録されていました。

 山幡さんのKVM連載は、本題に入ってVMEnter/VMExitまわりやページテーブルなど。なにげに、フェルナンドさんによるLinuxCon Japan 2010の仮想化ミニサミットのレポートや、山幡さんによるKVM Forum 2010のレポートの2本のコラムが入っているのも見所。

 セキュリティ連載は、DNSSECを解説。unboundを使った検証の方法も載ってました。

 Matzさんの連載は、Luaの話から組み込みRubyに話をもっていったと思ったら、軽量Rubyプロジェクトなどで忙しくなるのでしばらく休載、という展開。あらら。

 ほか、第2特集がnouveauの成り立ちから機能まで解説。BeagleBoardより安いLeopardBoardを使う組み込みLinux連載が新登場。障害解析連載は、Valgrindの応用編と、カーネルダンプでパケットダンプ。

「宗像教授異考録」第14集

 古代史探検(?)マンガの新作。今回は仮説で引っ張る大ネタが続く。宗像教授、ついに大英博物館に。

 元ネタリストは、ネタバレなので「続きを読む」で。

続きを読む »

「銭ゲバの娘プーコ/アシュラ 完結編」

 アシュラを初めて知ったのが「完結編」だったのだよな。単行本に入っていることを知って30年ぐらいぶりに読んだ。畜生法師が印象的なストーリーで、そのあたりはけっこう覚えてた。駆け足ながら、きれいにまとまったというか、急いでまとめたというか。しかしこれ、1980年代の週刊少年ジャンプ掲載なんだよな。

 「銭ゲバの娘」は…ノーコメント。

「Software Design」2010年11月号

 第3特集が「Ubuntu 10.10登場」。リリース前の段階での執筆ということだけど、細かいところまで書いてて参考になる。Ubuntu関連では、「Ubuntu Monthly Report」が自動的にサスペンドとかできるPowerNap。

 特集1が「クラウド時代のシステム管理」。前半がAWS利用の話で、遭遇したトラブルも含めたノウハウなども書いてあるのがいい。後半が、IaaS構築事例とAWS利用事例。

 「老頭児エンジニアのつぶやき」は、羽生章洋さんが登場。サラリーマンの日常の不満を例に、目先の問題から真の理由へと掘り下げていく要件定義論が面白いな。

 ほか、新連載「データベース技術の羅針盤」(松信嘉範さん)とか、LISP(Locator/Identifier Separation Protocol)とか、エラーメール解析とか、JavaScriptのデータ型の罠とか、Emacs vs. Eclipseとか、PerlのUTF-8とlatin-1とか。

 ちなみに、プレゼントコーナーに「ドロンくん」製作パーツセットというのがあった。ドロンくん、いまはキャタピラ式になってるんだ。

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

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

Monthly