Floating Log

2012-05-13 (*)

# IDの秘密

佐藤一郎「IDの秘密」丸善ライブラリー(2012)。 バーコード、QRコード、ICタグ、Felica など ID にまつわる技術と運用とを紹介して回るガイドツアーといった内容。 細かい話がコラムにまとまっていたりしてそれはそれで興味深い。

正誤表

posted at 16:53:36    #
 
2012-05-09 (*)

# エンジニアのための時間管理術

Thomas A. Limoncelli「エンジニアのための時間管理術」オライリー・ジャパン(2006)。 読む前はそれほど期待していなかったんだけど、読んだ後には携帯をスマートフォンに替えようかと考えていた。 基本的にはタイトルに「エンジニアのための」とあるけれど本文は「システム管理者のための」という視線で書かれている、いかに仕事の効率を上げて(自分もサービスする相手も)気持ちよく働けるようにするか、ということを考える本なのだが、その手段として PDA や手帳(本文中では PAA)をこんな風に使うといいと著者自身が編み出した手法を紹介している。 PDA というものが廃れて(わずか6,7年で随分変わるものだ)、常に持ち歩けるサイズの手帳だとちょっと大変そうに思えるので、今ならばスマートフォンかなと思ったのだ。

どうでもいいこと:「朝方人間」という表記が気になったのだが、わざとなのだろうか。

posted at 22:05:04    #
 
2012-05-06 (*)

# ぼくらのよあけ

今井哲也「ぼくらのよあけ 1, 2」アフタヌーンKC(2011)。 阿佐ヶ谷住宅という舞台に近所に住むものとしてつい笑ってしまう。 団地は団地だけど(もうすぐ取り壊しになる)平屋の建物ばっかりだからね。 あ、給水塔の形はあんな感じ。 それはともかく、最初同じ人だと気付かなかったのだがハックス!の人が随分感じの違う近未来SF的なものを描いているのにびっくりした。

posted at 11:54:56    #
 
2012-05-05 (*)

# Gentoo Prefix ブートストラップ手順 — Mac OS X 編

(注: これは現時点(2012-05-05)でのGentoo Prefix Bootstrap Process for Mac OS X の翻訳です。 翻訳を見てインストールしていて行き詰まったら素直に原文を見るようにしましょう。)

OS X でブートストラップ

Mac OS X システムで Gentoo Prefix をブートストラップする方法

はじめに

Apple Mac OS Xは当初Gentoo Portageのメインツリーでppc-macos キーワードの下サポートされていました。 しかし、そこで取られたアプローチはあまりにも多くの問題を引き起こし、 そのことがprefix化されたPortageを作り出す隠れた動機となりました。

OS Xでのブートストラップは比較的単純で、 それはシステム自体が素早くスピードを上げる大部分のツールを提供しているからです。

ブートストラップ

前提条件として、Xcodeの最新版をインストールしておかなければなりません。 Xcodeはコンパイラ・コレクションを提供します。 ブートストラップはこれ無しでは(まだ)できるようになっていません。 もし最新版以外のXcodeで問題が起こった場合には、まずはアップデートを試みて下さい。

最初のステップはインストールするパスを選択することです。 これ以降、このパスのことを「Prefixパス」と書きます。 その値はEPREFIX変数に入ります。 Prefixパスをどこにするか迷ったら $HOME/Gentoo$HOME/Library/Gentoo にしてみてはいかがでしょうか。 どこに決めたにしろ、その値を環境変数に設定することを忘れないで下さい。

EPREFIX 変数のエクスポート
$ export EPREFIX="$HOME/Gentoo"

tcshユーザーは代わりにsetenv EPREFIX "$HOME/Gentoo"を使います。

次に、以下のこれからPrefixになるパスをPATH環境変数に追加します。 $EPREFIX/bin$EPREFIX/usr/bin$EPREFIX/tmp/bin$EPREFIX/tmp/usr/bin

PrefixパスをPATHに追加
$ export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"

インストールしたいのが64ビット版のPrefixならば、CHOST変数を設定します。 Leopardではx86_64-apple-darwin9、 Snow Leopardではx86_64-apple-darwin10です。 もし、Lion上で32ビット版のPrefixをインストールしたいならば、 CHOST変数に設定するのはi686-apple-darwin11です。 これらの設定は64ビット版(または32ビット版)Prefixにすることが必要なときだけです!

さて、パスを設定したところで、ブートストラップ・スクリプトをhttp://overlays.gentoo.org/proj/alt/browser/trunk/prefix-overlay/scripts/bootstrap-prefix.sh?format=txt からダウンロードするところから始めましょう。 ブートストラップ・スクリプトを置いたディレクトリから次のコマンドたちを実行します。

ブートストラップを使って
$ chmod 755 bootstrap-prefix.sh
$ ./bootstrap-prefix.sh $EPREFIX tree
$ ./bootstrap-prefix.sh $EPREFIX/tmp make
$ ./bootstrap-prefix.sh $EPREFIX/tmp wget
$ ./bootstrap-prefix.sh $EPREFIX/tmp sed
$ ./bootstrap-prefix.sh $EPREFIX/tmp python
$ ./bootstrap-prefix.sh $EPREFIX/tmp coreutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp findutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch259
$ ./bootstrap-prefix.sh $EPREFIX/tmp grep
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash
$ ./bootstrap-prefix.sh $EPREFIX portage

wgetsedpythonなどが$EPREFIX/tmp にインストールされたことを心に留めておきましょう。

ブートストラップ・スクリプトは$EPREFIXディレクトリを適切に準備し、 Portageツリーのスナップショットをダウンロードして展開し、 Portageをダウンロードしてインストールします。 その後でいくつかのまともなデフォルトを設定します。 いくつかの新しいアプリケーションをインストールしたので、 bashに全てのパスを見直すように指示します。

bashのリハッシュ
$ hash -r

tcshユーザーはrehashコマンドを使いましょう。

さらにいくつかのemergeの途中で見ることになるかもしれない沢山のエラーや警告に対処するのに必要なツールを追加していきます。

emerge sed
$ emerge --oneshot sed

次に、Portageがどっぷり依存しているbashをemergeします。 ダウンロード・マネージャーwgetも同様です。 現段階ではまだ依存しているものまでコンパイルすることができないので、 しばらく無視しておくことにします。 pax-utilsはPortageがインストールするバイナリの正しさを調べられるようにしてくれます。

emerge bash, pax-utils, wget
$ emerge --oneshot --nodeps bash (シェバン /bin/sh であるスクリプトをインストールする依存を回避)
$ emerge --oneshot pax-utils
$ emerge --oneshot --nodeps xz-utils
$ emerge --oneshot --nodeps "<wget-1.13.4-r1" (#393277 が修正されるまで)

ブートストラップ手順の最後まで"1 config files in XXX need updating" というメッセージが出てきても無視しておいても安全です。

続いて、コンパイラとリンカをemergeし、 Gentoo Prefix環境を使えるように準備します。 emergeするパッケージにはbaselayoutが含まれます。 いくつかの(沢山ではないにしても)Gentooシステムに含まれるスクリプトやツールは Gentoo風色付けを使った全てのコミュニケーションにbaselayoutパッケージが 使えることを仮定しています。

コンパイラ及びリンカに必要なもののemerge
$ emerge --oneshot --nodeps sys-apps/baselayout-prefix
$ emerge --oneshot --nodeps sys-devel/m4
$ emerge --oneshot --nodeps sys-devel/flex
$ emerge --oneshot --nodeps sys-devel/bison
$ emerge --oneshot --nodeps sys-devel/binutils-config

Xcodeのバージョンの違いにより、 以下の手順に違いが出ますのでgcc --versionの出力をよく見て下さい。 一行目に出て来るバージョンが4.2.1ならば最新のbinutils-apple をemergeする必要があります。 そうでなければ4.0.1と出力されているはずですがこの場合 =binutils-apple-3.2をemergeしなければなりません。

リンカのemerge
$ emerge --oneshot --nodeps "=sys-devel/binutils-apple-3.2" (gcc 4.0.1の場合)
$ emerge --oneshot --nodeps sys-devel/binutils-apple    (gcc 4.2.1の場合)

それではコンパイラに進みましょう。

コンパイラのemerge
$ emerge --oneshot --nodeps sys-devel/gcc-config
$ emerge --oneshot --nodeps sys-devel/gcc-apple

Prefixに次々とツールが入れていきましょう。 この段階では、もう依存を無視し続けないので、多くのパッケージがemergeされます。 ゆっくりとですがPrefixもだんだんと頑健なものになってきます。

いくつかのツールのemerge
$ emerge --oneshot sys-apps/coreutils
$ emerge --oneshot sys-apps/findutils
$ emerge --oneshot '<app-arch/tar-1.26-r1'
$ emerge --oneshot sys-apps/grep
$ emerge --oneshot sys-devel/patch
$ emerge --oneshot sys-apps/gawk
$ emerge --oneshot sys-devel/make
$ emerge --oneshot --nodeps sys-apps/file
$ emerge --oneshot --nodeps app-admin/eselect

そろそろPortageが必要とするプログラムが一揃い揃ったので、 ブートストラップされたPortageを正しい位置にインストールされたPortageで、 Portageそのものを使って置き換えます。 またここでいくつかの依存パッケージが初めてemergeされます。 たとえばPortageの記述言語であるpythonなどです。 一時的にPortageに対しブートストラップされたPortageを上書きしても良いと伝える必要があります。

emerge portage
$ env FEATURES="-collision-protect" emerge --oneshot sys-apps/portage

さあブートストラップした全てをemergeしましたので、 要らなくなった一時的なディレクトリを消しそこにあるものを使うのを止めましょう。

tmpディレクトリの消去
$ rm -Rf $EPREFIX/tmp/*
$ hash -r

さらにemergeを続けていく前に、ツリーを更新しましょう。 ツリーの更新には次のようにします。

ツリーの更新
$ emerge --sync

もし、rsyncでの通信が遮断されるファイアウォールの中にいるならば、 代わりに${EPREFIX}/usr/sbin/emerge-webrsyncを実行してみて下さい。

次に、Prefixのインストールを仕上げるのに最終的に必要なシステム・インストールを完遂する全てのパッケージをPortageにemergeさせます。

emerge system
$ env USE=-git emerge -u system

もうすぐ自分のものになるPrefixに自分好みな設定をするには今が絶好のタイミングです。 設定にはUSEフラグ、CFLAGSMAKEOPTS$EPREFIX/etc/portage/make.confをカスタマイズすることも含まれます。 CFLAGSに関しては保守的に! 下のコードは例に過ぎませんので、こんな感じという雰囲気だけ伝えるものです。

Prefixインストールのカスタマイズ例
$ echo 'USE="unicode nls"' >> $EPREFIX/etc/portage/make.conf
$ echo 'CFLAGS="-O2 -pipe <my-cpu-flags>"' >> $EPREFIX/etc/portage/make.conf
$ echo 'CXXFLAGS="${CFLAGS}"' >> $EPREFIX/etc/portage/make.conf

上の例の中の<my-cpu-flags>は自分のCPUに合わせて置き換える必要があります。 IntelベースのMacユーザー(たとえばMacBookやCoreDuo)はSSE命令が有効化されていないために起こるコンパイルエラーを避けるためにここに少なくとも-march=prescott と書いて置いてください。 Core2Duoユーザーは-march=core2を使えます。 PPCユーザーはCPUの別名をCPUに特化したチューニングを有効にするのに使えます。 例えば-mcpu=G5 -mtune=G5のようにします。

再ビルドを自力で賄えるだけのものが揃ったので、 Prefixシステムのインストールの最後の段階を始められます。 この最後の段階ではシステムの全てを再コンパイルします。 ただし今までと違って全てのパッケージがホスト・システムのツールではなく Prefixにあるツールを使ってコンパイルできるようになっています。

最後のsystemインストールをします
$ emerge -e system

systemのemergeがつつがなく終われば、 Prefixは正常にできあがったことになり、 あとはPrefixツリーから好みで選んだものを何でもemergeすることができるようになります。

Prefixの使用

ブートストラップの終わったPrefix環境を使うのに一番良いのは パスやその他の環境変数が正しく設定されたPrefixのシェルを立ち上げることです。 これを簡単に行うために、ちょっとした補助スクリプトがブートストラップ・スクリプトによって作られています。

startscriptの作成
$ cd $EPREFIX/usr/portage/scripts
$ ./bootstrap-prefix.sh $EPREFIX startscript

これを実行すると、$EPREFIXstartprefixスクリプトができます。 このスクリプトはどこに動かしても構いません(たとえばホームディレクトリとか)。 スクリプトを実行するとPrefixシェルに移ることになり、 そこではたとえばemergeが直ちに実行できるようになっています。 Prefixを楽しみましょう!

posted at 13:39:28    #
 
2012-05-03 (*)

# 活断層系

金折裕司「活断層系」近未来社(1997)。 シリーズ第三弾というところだが、1995年の阪神淡路大震災を引き起こした地震の発生を踏まえて、これまでの説を修正したり補強したり、まあアップデート版という感じ。 今まで花折-金剛構造線で地震が起こると言っていたのが、高槻-六甲-淡路構造線で地震が起こったので、その二つを実質的に一体のものと見なして議論することにしたりとか。

一つ可笑しかったのが、航空写真を2枚並べて立体視すると地形が浮き出て見える(その中に断層を示すリニアメントがある)という方法の説明写真が、普通に山が山に見えた。 それの何が可笑しいかというと、前巻「断層列島」の例は逆に川が浮き出て見えたので、これは平行法じゃなくて交差法で見ろということか、と思っていたら、実は写真が逆でしたとしれっと書いてあったところ。

posted at 02:46:40    #
 
2012-05-02 (*)

# 断層列島

金折裕司「断層列島」近未来社(1994)。 数日前の「甦る断層」の続き。 四国九州と東北の構造線を説明して前回の中部近畿と合わせて日本の大部分(堆積に覆われて良く判らない関東と内陸地震の少ない北海道は除いて)の主要な地震発生地帯をマイクロプレートのモデルに載せた。 他にも室戸岬・襟裳岬の地形的類似とその成因の類似を考えたり、断層調査の話があったり。

posted at 01:38:24    #
 
2012-05-01 (*)

# Effective C++

スコット・メイヤーズ「Effective C++」ピアソン・エデュケーション(2006)。 普段 Python ばかり書いているのであまり用は無いのだが、C++ のお勉強。

9刷なのでさすがに誤植も淘汰されただろうと思いきやちらほらある。 訳者の補足ページにまとまってはいる(大部分は訂正済み?)。 それ以外に 37 ページだけ印刷の色がおかしいとか、「ラーゲル多項式」ってあんまり聞かないなあとか。 何をどうしたら shared_array の y だけフォントが違うというようなことが起こるのだろう。

posted at 20:22:40    #
 
2012-04-30 (*)

# Python プロフェッショナルプログラミング

株式会社ビープラウド「Python プロフェッショナルプログラミング」秀和システム(2012)。 自分の立ち位置を認識するには役に立った。

正誤表

posted at 18:25:20    #
 

# 6. Gentoo Prefix の殿堂

過去の開発者

時を経るにつれ、開発者たちの顔ぶれは変わります。 ある者は謎の消失を遂げ、またある者は興味を失い去る決意をするのです。 過去の全ての貢献者たちに感謝の念を表したく思います。 Prefix プロジェクトが今日のようになったのは彼らのお陰だと。

過去の Prefix 開発者
ferringb Prefix ブランチを始めた最初の Portage 開発者
kito ツリーを使った Prefix の最初のプロトタイプ、Mac OS X インストーラー、多くの初期のエンジニアリングおよび開発タスク
exg Prefix Portage メンテナー
genstef Mac OS X に gtk+, qt4, X11 アプリケーションを導入
pipping 多くの Perl, Python, Ruby, Java のパッケージ追加、 沢山の Mac OS X をターゲットとした修正や機能追加、 Darwin 9 (Leopard 10.5) サポートの先駆者
drizzt 多くは Solaris 9 のサポートをパッケージの修正により復活
fauli FreeBSD 8 サポートを加速し、多少 Interix のテストも
posted at 01:21:20    #
 
2012-04-29 (*)

# 5. リソース

prefix プロジェクトで提供しているリソースは以下のものがあります:

posted at 23:34:40    #
 

# 甦る断層

金折裕司「甦る断層」近未来社(1993)。 少し前に読んだ「足元に活断層」の元ネタその1。 マイクロプレートというモデルで中部日本(中部から近畿にかけての地域)で発生する地震を説明する。 モデルの説明は面白いんだけど、その先の実証するための道具としての地層調査とか石英微粒子の分類とかは、細かすぎてそこまで興味ないという感じだった(まあそんなことを言っているから浅い知識しか身に付かないわけだけど)。

posted at 19:01:36    #
 

# 4. 開発者とプラットフォーム

プラットフォームのマトリックス

サポートプラットフォームを見失わないようにするために以下のマトリックスが保守されています。 また開発者が保守しているプラットフォーム、あるいは直接アクセスできるシステム、に関するフィードバックも提供しています。

grobian haubi mduft darkside abcd heroxbd その他 サポート
x86-linux x x o x x 最高
amd64-linux o x o x x x 良好
ia64-linux o まあまあ
arm-linux x 良好
ppc-aix x o o o まあまあ
x86-freebsd 不良
x64-freebsd o まあまあ
hppa-hpux x o o まあまあ
ia64-hpux x x o 良好
x86-interix o x まあまあ
ppc-macos x まあまあ
x86-macos x a 良好
x64-macos x a 良好
m68k-mint a まあまあ
x86-netbsd v 不良
ppc-openbsd v 不良
x86-openbsd v 不良
x64-openbsd v 不良
sparc-solaris x x x o a 最高
sparc64-solaris x a 良好
x86-solaris x x x o a 最高
x64-solaris x まあまあ
x86-winnt o x まあまあ

凡例:

記号 意味
x 開発者により活発に保守されている
o 開発者がアクセス可能
v 放置中
a ユーザー/貢献者により活発に保守されている
e ユーザー/貢献者が実験的に取り組んでいる
posted at 00:13:04    #
 
2012-04-28 (*)

# 3. 開発者

開発者 ニックネーム 役割
Fabian Groffen grobian 長 ( Prefix Portage のメンテナー )
Jonathan Callen abcd 開発者
Jeremy Olexa darkside 開発者
Michael Haubenwallner haubi 開発者
Benda XU heroxbd 開発者
Markus Duft mduft 開発者

全ての開発者には ニックネーム@gentoo.org を使うと e-mail で連絡が取れます。

posted at 23:45:20    #
 

# 2. 始め方

ブートストラップ

お使いのシステムに prefix された Portage をインストールするためには、我々がブートストラップと呼ぶ幾つかの手順を踏んでいただく必要があります。 今のところ詳細なガイドは Mac OS X と Solaris 用のものしか用意していませんが、他のシステムにおいても Solaris 用のガイドが十分役に立つと思います。 prefix された Portage が使えることが判っているのは種々の Linux および FreeBSD です。 ただし、bash が用意されていないシステムでは、まずそれを bootstrap-bash.sh スクリプトでブートストラップしていただく必要があります。 スクリプトは、ガイドに書かれた bootstrap-prefix.sh の隣に見つけられます。

Windows ユーザーは Interix インストーラーを使うのが近道です。

補助スクリプト

prefix された Portage のインストールのセットアップを簡単にするために、Gentoo Prefix プロジェクトでは bootstrap-prefix.sh という名前のスクリプトを用意しています。 このスクリプトはブートストラップ・プロセスのある種の足掛かりで、Portage ツリーのダウンロード、Portage 及び必要になる一時的な補助アプリケーションのインストールを自動的にします。

正しい bootstrap-prefix.sh の置き場所やいつどのように使うのかはプラットフォームごとのブートストラップ・プロセス HOWTO に説明されています。

HOWTO ガイド

以下のガイドはそれぞれのプラットフォームでどのように prefix された Portage をインストールするかの詳細な説明を行うものです。

Windows ユーザーはミラーにある Gentoo Prefix の Interix 移植版の文書と ISO イメージを探すといいでしょう。

もっと多くの文書やサポート窓口について Resources 節に情報があります。

posted at 23:34:40    #
 

# 1. プロジェクト概要

Gentoo Linux の強みを他のオペレーティングシステムにもたらすため、Gentoo Prefix プロジェクトは Gentoo システムを "prefix" で指定される非標準的な場所にインストールする方法を開発・維持します。

通常、Gentoo Linux のパッケージマネージャ(portage)がインストールするのは / として知られるファイルシステムの根に対してです。 Gentoo Linux 以外のシステムでは、これは大抵ソフトウェアパッケージの衝突によって問題を引き起こします(OS 自体が Gentoo/FreeBSD のように適応させられていなければ)。 そこで、Gentoo Prefix はインストール先に prefix というオフセットを付けるようにし、ユーザーがファイルシステム階層の別の場所に Gentoo をインストールできるようにすることで衝突を回避できるようにします。 オフセットの他にも、Gentoo Prefix を権限無しで実行する、つまり root ユーザーであったりあるいはその権利を行使できる立場でなくても使えるようにしています。

オフセット("prefix" 付きの場所)を用いることで、多くの「代替的」ユーザーグループが Gentoo Linux Portage ツリーのパッケージ群の大きな部分から恩恵を受けることができます。 現在以下のシステムのユーザーが Gentoo Prefix を成功裏に運用しています: PPC または x86 上の Mac OS X、x86, x86_64, ia64 上の Linux、Sparc, Sparc/64, x86, x86_64 上の Solaris、x86 上の FreeBSD、PPC 上の AIX、x86 上の Interix、x86 上の Windows (Interix の助けを借りて)、PARISC, ia64 上の HP-UX。

posted at 22:56:16    #
5月 2012
   1 2 3 4 5
6 7 8 9101112
13141516171819
20212223242526
2728293031  
4月
2012
 6月
2012

浮遊する思考・浮遊する言葉を拾い集めて記録しておくページ。

Feed Icon Letterimage

Python
Desktop
Server

Twitter Updates

    follow me on Twitter

    © 2012, Matsui Fe2+ Tetsushi