2012-02-27

MagicanPasterのエラー

「Mac mini」の内部温度を監視する為に、AppleStoreから「MagicanPaster/1.1.1」を購入して使っている。最近、「mod_wsgi」をApache2に組み込むときに、コンソールを開けた時に「MagicanPaster」から数秒に1回エラーが発生していた。その時は、取り合えず、MagicanPasterを停止しておいた。

時間が取れたので、調べてみた。そのエラー状況は;
図1. Console.appの全てのレポートを表示した時に現れるMagicanPasterのエラー
このエラー部分の一部をコピー&ペーストしてものは;
2012-02-27 21:13:47.218 MagicanPaster: [ERROR] [CmcReadSmcKey] SMC get key info fail: 0
2012-02-27 21:16:05.205 login: USER_PROCESS: 596 ttys001
2012-02-27 21:20:14.092 MagicanPaster: [ERROR] [CmcReadSmcKey] SMC get key info fail: 0
2012-02-27 21:20:14.093 MagicanPaster: [ERROR] [CmcReadSmcKey] SMC get key info fail: 0
 不思議なことに、ここのログを探しましたが、このエラーに対応するログはありませんでした。

そもそも、Console.appや各ログの意味などが不明なので、Appleのサポート・センタに電話して聴いた所、AppleStoreで購入したとしても、外部のプログラムであるので、エラーの説明などはできない。ただし、標準的な対処法は説明して頂いた;
  1. SMC(System Manager Controle)のクリア、PRAMクリア:結果変化なし。
  2. MagicanPasterの削除と、AppleStoreからの再インストール :結果変化なし。
これ以上は、システムの再インストールしか可能性は無いとの事。

もう少し、自己調査を進めるしかないかなぁ。

ーーーー このポストの履歴
  1. 開始 2012-02-27 (月) 22:45


2012-02-25

マウスさん、さようなら

長い事使って来たマウス(「Logicool MX-Revolution」と思われますが...)の上下方向の動きが急速に落ちてきました。一方、「Magic Trackpad」は苦手意識が強く、せいぜい;
  • ウィンドウズ間の切り替え位:四本指の左右スワイプ
  •  ブラウザでの縦スクロール:二本指の上下スクロール
に使うだけでした。

他方で、Xcodeの練習をしていると、マウスとキーボードの連係プレイが多いので、このさい、「Magic Trackpad」に慣れた方が体の為にも、机の効率的な利用の為にも良いかと感じました。

で、とにかく弄ると、不得意な部分が判ってきました;
  1. 右クリック:二本指のクリック
    • どうしても中指のクリックしか頭に思い浮かばなかった。しかたなく、
      • 一本指のクリック → 左クリック、
      • 二本指のクリック →右クリック。
    • 石頭だなぁ、自分。
  2. アプリケーションの位置調整:三本指でのドラッグ
    • どうしても一本指のドラッグでする事しか頭に浮かばなかった。
  3. ある文章部分のハイライト: 三本指でのドラッグ
    •  これも、一本指のドラッグでする事しか頭に浮かばなかった。
    • 長い距離の場合、Trackpadから出てしまい、ハイライトできなかった。
      • 長い場合、左手を継ぎ足して、ドラッグを継続するようにした。
  4.  手首が疲れ易いので、前腕ごとサポートする様な形状をテスト中。

ーーーー このポストの履歴
  1. 開始 2012-02-25 (土) 11:03

2012-02-20

図書紹介#011:「Xcode 4ではじめるObjective-Cプログラミング」

私は、C言語が嫌いだ。でもXcode/4を触っていく為にはObjective-Cの取り扱いも知りたい所だった。渋谷の丸善でこの本を拝見したのでフラフラと購入した。この著者の大津さんの本はこれまで3冊持っている;
  • Mac OS X Tiger, 上下, ローカル
  • Mac OS X Unix活用大全、ASCII
これらのお陰で、Macの使い方のベースを整えることができた。

本題に戻る。

この本では、Macでの開発の仕方のベースを整える事ができると嬉しい。まだCコンパイラも「LLVM → Clang」という大きな変化があるようなので、フォローできると嬉し。どちらも、PythonやRubyの開発環境と密接な関係があるだろうから...。

  • 「Xcode 4ではじめるObjective-Cプログラミング」
    • 大津 真・著
    • ラトルズ, 2012-01-31
    • ISBN-13: 978-4-89977-299-6
p23に「Clangの話」があったので、真似をしたら;
$ clang -v
Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
 だった。本のXcode/4.2では「clang version 3.0 (tags/Apple/clang-211,10.1」バージョンが、自分の Xcode/4.1のそれと大幅に違う。当分様子見かな。

試しに、p29からの「HelloWorld」を試そうとしたら、p30の初期設定ですら異なっている;
  • Product Name
  • Type
しか聴いてこない。p31のプロジェクト設定画面も随分と寂しい。このまま無理につかうよりも、現状の「Xcode/4.1 (4B110)」を4.2にヴァージョンアップか?

という事で、すこしXcode絡みの状況を調べてみると、すでにXcode/4.3が出ていて、その上「/Dveloper」ではなく、通常のアプリのようにインストールされるようだ。
なにかAppleは方針が崩れていないだろうか?

その後、状況を教えて頂く為に、「Appleサポート・コミュニティ: Lion」 にお伺いをした;
その中でHALさんの仰る米国のサイトにはXcode/4.2.1があるので、これをDLした。インストーラが先に落とされて解凍後に、インストーラを起動する方式らしい。そういえば、Xcode/4.1でも戸惑った記憶がある。

その結果、 この本の解説にぴったりの応答が得られるようになった。Xcode/4.2.1の様子は別途の記事に書こうかと思っています。

ーーーー このポストの履歴
  1. 開始 2012-02-20  (月) 21:10
  2. 追加 2012-02-21  (火) 08:18 「Clangの話」
  3. 追加 2012-02-21  (火) 13:05  p29からの「HelloWorld」を試そうと
  4. 追加 2012-02-21  (火) 14:01  Xcode/4.3
  5. 追加 2012-02-24  (金) 10:30  「Appleサポート・コミュニティ: Lion」 にお伺い

2012-02-18

「Lion10.7の標準Apache2」にmod_wsgiをインストール

以前の記事『図書紹介#010:「WSGIウェブプログラミング」』で、wsgi-moduleのコンパイルまでテストできたが、この本はWindowsで、Apacheも新規にインストールする話で、Macの場合は説明が無い。

そこで、以前から気になっていた「Mac OS X でのApache2」の設定を調べた記事が『「Lion10.7の標準Apache2」での設定状況 』です。これらを元にしてwsgi_mod/3.3をApache/2.2.21にインストールした結果をまとめて置きます。

「WSGIウェブプログラミング」 p76の「リスト4.4 http-wsgi.conf(Windows版)」を参考にして、「/usr/apache2/extr/」にhttp-wsgi.conf(OSX版)を追加した;

div-mm:/etc/apache2/extra u1$ ll
total 24
-rw-r--r--  1 root  wheel   2841  9 18 15:47 httpd-autoindex.conf
-rw-r--r--  1 root  wheel   1648  9 18 15:47 httpd-dav.conf
-rw-r--r--  1 root  wheel   2344  9 18 15:47 httpd-default.conf
-rw-r--r--  1 root  wheel   1103  9 18 15:47 httpd-info.conf
-rw-r--r--  1 root  wheel   5078  9 18 15:47 httpd-languages.conf
-rw-r--r--  1 root  wheel    942  9 18 15:47 httpd-manual.conf
-rw-r--r--  1 root  wheel   4074  9 18 15:47 httpd-mpm.conf
-rw-r--r--  1 root  wheel   2180  9 18 15:47 httpd-multilang-errordoc.conf
-rw-r--r--  1 root  wheel  10249  9 18 15:47 httpd-ssl.conf
-rw-r--r--  1 root  wheel    514  9 18 15:47 httpd-userdir.conf
-rw-r--r--  1 root  wheel   1545  9 18 15:47 httpd-vhosts.conf
-rw-r--r--  1 root  wheel    593  2 17 21:12 httpd-wsgi.conf
div-mm:/etc/apache2/extra u1$
その内容は;
div-mm:/etc/apache2/extra u1$ cat httpd-wsgi.conf
#
# refer to "WSGI Programming", p74..6. 
# by u1 at div-mm on Lion 10.7.3, 2011-02-17.
## Home BU: ~/Sites/myApache2/apache2_BU/httpd-wsgi.conf
## Apache2: /private/etc/apache2/extra/httpd-wsgi.conf
#
LoadModule wsgi_module libexec/apache2/mod_wsgi.so

Listen 9000

<VirtualHost *:9000>
    ErrorLog "/private/var/log/apache2/wsgi-error_log"
    CustomLog "/private/var/log/apache2/wsgi-access_log" common
</VirtualHost>

<Directory "/Users/u1/Sites/devP/application/wsgi">
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias /wsgi "/Users/u1/Sites/devP/application/wsgi"
div-mm:/etc/apache2/extra u1$ 
です。このファイルを「/etc/apache2/http.conf」の中でインクルードしました;
 # Language settings
Include /private/etc/apache2/extra/httpd-languages.conf

<IfDefine WEBSHARING_ON>
# Multi    -language error messages
#Include /private/etc/apache2/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include /private/etc/apache2/extra/httpd-autoindex.conf

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

# Real-time info on requests and configuration
#Include /private/etc/apache2/extra/httpd-info.conf

# Virtual hosts
#Include /private/etc/apache2/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual
Include /private/etc/apache2/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
#Include /private/etc/apache2/extra/httpd-dav.conf

# wsgi(Web Server Gateway Interface) between Apache2 and web-applications
Include "/private/etc/apache2/extra/httpd-wsgi.conf"

</IfDefine>
どこに置くのがいいのか判らないので、見慣れた「httpd-manual.conf
」の近くに入れてみました。

 テストの為に、「WSGIウェブプログラミング」p80、index.wsgiを作り;
div-mm:~/Sites/devP/application/wsgi u1$ cat index.wsgi
# -*- coding: utf-8 -*-

def application(environ, start_response):

    status = '200 OK'
    body = 'wsgi Application のテスト'
    header = [('Content-Type', 'text/html; charset=-8'),
           ('Content-Length', str(len(body)))]
    start_response(status, header)
    return [body]
div-mm:~/Sites/devP/application/wsgi u1$ 


ブラウザから「http//:localhost:9000/wsgi/index.wsgi」にアクセスすると、 「wsgi Application のテスト」が表示された。


なお、wsgiのログは、「コンソール.app」で確認できた。

小技:Apacheのヴァージョンを得るには;
div-mm:~ u1$ httpd -v
Server version: Apache/2.2.21 (Unix)
Server built:   Nov 15 2011 15:12:57
div-mm:~ u1$ 


ーーーー このポストの履歴
  1. 開始 2012-02-18 (土) 14:00
  2. 追加 2012-02-19  (日) 18:03  ヴァージョンを得る

2012-02-15

llvm-gccとgccと

PythonやRubyの環境を整えようと思うと、「llvm-gccとgccとの違い」が気になってきました。その中で、
と言うサイトは、参考になりそうです。が、私の所
とは;
  • Mac mini(mid 2011)
  • Lion 10.7.3(11D50)
  • Xcode 4.1(4B110)
と微妙に違うので、比較の為には自分の情報を整理してみる必要がありそうです。

「/usr/bin」でのgcc関連を調べてみた;

div-mm:/usr/bin u1$ lla |grep gcc
lrwxr-xr-x     1 root   wheel        12 10  1 11:49 cc@ -> llvm-gcc-4.2
lrwxr-xr-x     1 root   wheel        12 10  1 11:49 gcc@ -> llvm-gcc-4.2
-rwxr-xr-x     1 root   wheel    113024  5 16  2011 gcc-4.2*
-rwxr-xr-x     1 root   wheel    562992  5 16  2011 i686-apple-darwin11-gcc-4.2.1*
lrwxr-xr-x     1 root   admin        52 10  1 11:48 i686-apple-darwin11-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-g++-4.2
lrwxr-xr-x     1 root   admin        52 10  1 11:48 i686-apple-darwin11-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-cpp-4.2@ -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-g++@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x     1 root   admin        32 10  1 11:48 llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
div-mm:/usr/bin u1$ 

このように、自分のLionでは、gcc-4.2もllvm-gccも存在している。けれど、gccはllvm-gccにシンボリック・リンクされている。gcc-4.2が存在するのは、Xcode4.1で留めているからそうなっているのかもしれない。従って、
  • Xcode4.2に上げても、gcc-4.2を上記サイトを参考にインストールすれば良いだけかもしれない。
  • Lion10.7.3では強い障害が起る場合が散見するが、自分の所はあまり大事はおこっていないのは、gcc-4.2があるお陰か???
    • 小さな障害として、Docのアイコンを右クリックしてオプションから
      • 「このデスクトップ 」→ 固定成功。
      • 「すべてのデスクトップ」→ 開いたデスクトップに固定されて、駄目。
なお、直接にヴァージョン情報を見てみたら;

div-mm:~ u1$ gcc-4.2 --version
i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

div-mm:~ u1$ gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

div-mm:~ u1$ 

参考の為に、IMac(late 2009)で、「Snow Leopard 10.6.8」についても調べてみた;

curl:~ u1$ lla /usr/bin/ |grep gcc
lrwxr-xr-x     1 root   wheel           7  7 22  2011 cc@ -> gcc-4.2
lrwxr-xr-x     1 root   wheel           7  7 22  2011 gcc@ -> gcc-4.2
-rwxr-xr-x     1 root   wheel       97392 10 24  2010 gcc-4.0*
-rwxr-xr-x     1 root   wheel      166128 10 24  2010 gcc-4.2*
-rwxr-xr-x     1 root   wheel      369696 10 24  2010 i686-apple-darwin10-gcc-4.0.1*
-rwxr-xr-x     1 root   wheel      816560 10 24  2010 i686-apple-darwin10-gcc-4.2.1*
lrwxr-xr-x     1 root   admin          52  7 22  2011 i686-apple-darwin10-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-g++-4.2
lrwxr-xr-x     1 root   admin          52  7 22  2011 i686-apple-darwin10-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/i686-apple-darwin10-llvm-gcc-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-cpp-4.2@ -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-g++@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-gcc@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
lrwxr-xr-x     1 root   admin          32  7 22  2011 llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2
-rwxr-xr-x     1 root   wheel      373792 10 24  2010 powerpc-apple-darwin10-gcc-4.0.1*
-rwxr-xr-x     1 root   wheel      820496 10 24  2010 powerpc-apple-darwin10-gcc-4.2.1*
lrwxr-xr-x     1 root   admin          55  7 22  2011 powerpc-apple-darwin10-llvm-g++-4.2@ -> ../llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2
lrwxr-xr-x     1 root   admin          55  7 22  2011 powerpc-apple-darwin10-llvm-gcc-4.2@ -> ../llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2
curl:~ u1$ 
 

確かに雪豹ではgccはgcc-4.2にシンボリック・リンクされている。 llvm-gcc-4.2も在るが、gcc-4.0もまだあるようだ。

Wikipediaで調べてみると、LLVM → Clang;
と言う伸展があるらしい。そこでターミナルを叩くと;

div-mm:~ u1$ which clang
/usr/bin/clang
div-mm:~ u1$ man clang
div-mm:~ u1$ clang --version
Apple clang version 2.1 (tags/Apple/clang-163.7.1) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.3.0
Thread model: posix
div-mm:~ u1$ ll /usr/bin/ |grep clang
-rwxrwxr-x    1 root   admin  39612800  6 22  2011 clang*
lrwxr-xr-x    1 root   admin         5 10  1 11:48 clang++@ -> clang
div-mm:~ u1$ 
 なんと「巨大なclang」が既に実装されているようだ。全然理解できていないが、面白そうだなぁ。


ーーーー このポストの履歴
  1. 開始 2012-02-15 (水) 18:39
  2. 追加 2012-02-16  (木) 13:05  「巨大なclang」

2012-02-14

開発環境の整備#01

以前の記事、『「Ruby on Rails」のLionへのインストール』で、Homebrewをいれたもののそのままにしていた。しかし、本格的な整備は「MacPort」から「Homebrew」にしたいと思っている。そこで、具体的にHomebrewによる整備をし、その記録を取っていこうと考えた。

手始めに、よく使いそうなコマンドを入手してみた;
  • brewのupdate
  • brewで「wget 1.13.4」をインストール
  • brewで「tree 1.6.0」をインストール
  • brewで「nkf 2.1.2」をインストール
  • brewでインストールすると;
    • 「/usr/local/Cellar/」下にインストールされる。
      • 自家醸造(自分でコンパイルさせて貰った)されたビール(プログラム)は酒蔵で保存するという事か。
    • MacPortと違って、パスもマン・パスもセットされている。

この時のターミナルの記録(treeまで);

div-mm:/usr/local u1$ brew update
Initialized empty Git repository in /usr/local/.git/
remote: Counting objects: 55162, done.
remote: Compressing objects: 100% (25331/25331), done.
remote: Total 55162 (delta 35637), reused 46202 (delta 29115)
Receiving objects: 100% (55162/55162), 8.01 MiB | 1.30 MiB/s, done.
Resolving deltas: 100% (35637/35637), done.
From https://github.com/mxcl/homebrew
 * [new branch]      gh-pages   -> origin/gh-pages
 * [new branch]      master     -> origin/master
HEAD is now at b715baf synfigstudio: omit autoreconf
Already up-to-date.
div-mm:/usr/local u1$ brew install wget
==> Downloading http://ftpmirror.gnu.org/wget/wget-1.13.4.tar.bz2
######################################################################## 100.0%
==> ./configure --disable-debug --prefix=/usr/local/Cellar/wget/1.13.4 --syscon
==> make install
/usr/local/Cellar/wget/1.13.4: 7 files, 580K, built in 42 seconds
div-mm:/usr/local u1$ ll /usr/local/Cellar/wget/1.13.4
total 264
-rw-r--r--  1 u1  wheel   2182  1  1  2011 AUTHORS
-rw-r--r--  1 u1  wheel  35147  5 19  2011 COPYING
-rw-r--r--  1 u1  wheel  84592  9  4 21:18 ChangeLog
-rw-r--r--  1 u1  admin     74  2 12 19:07 INSTALL_RECEIPT.json
-rw-r--r--  1 u1  wheel   4064  1  1  2011 README
drwxr-xr-x  3 u1  admin    102  2 12 19:07 bin/
drwxr-xr-x  3 u1  admin    102  2 12 19:07 share/
div-mm:/usr/local u1$ brew list
node wget
div-mm:/usr/local u1$ brew home tree
div-mm:/usr/local u1$ brew install tree
==> Downloading http://mama.indstate.edu/users/ice/tree/src/tree-1.6.0.tgz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/tree/1.6.0 MANDIR=/usr/local/Cellar/tree/1.6.
/usr/local/Cellar/tree/1.6.0: 6 files, 116K, built in 2 seconds
div-mm:/usr/local u1$ cd Cellar/
div-mm:/usr/local/Cellar u1$ tree
.
├── node
│   └── 0.6.7
│       ├── AUTHORS
│       ├── ChangeLog
│       ├── INSTALL_RECEIPT.json
│       ├── LICENSE
│       ├── README.md
│       ├── bin
│       │   ├── node
│       │   └── node-waf
│       ├── include
│       │   └── node
│       │       ├── ares.h
│       │       ├── ares_version.h
│       │       ├── c-ares
│       │       │   ├── ares.h
│       │       │   └── ares_version.h
│       │       ├── config.h
│       │       ├── ev
│       │       ├── node.h
│       │       ├── node_buffer.h
│       │       ├── node_config.h
│       │       ├── node_object_wrap.h
│       │       ├── node_version.h
│       │       ├── uv-private
│       │       │   ├── eio.h
│       │       │   ├── ev.h
│       │       │   ├── ngx-queue.h
│       │       │   ├── tree.h
│       │       │   ├── uv-unix.h
│       │       │   └── uv-win.h
│       │       ├── uv.h
│       │       ├── v8-debug.h
│       │       ├── v8-preparser.h
│       │       ├── v8-profiler.h
│       │       ├── v8-testing.h
│       │       ├── v8.h
│       │       └── v8stdint.h
│       ├── lib
│       │   └── node
│       │       └── wafadmin
│       │           ├── Build.py
│       │           ├── Configure.py
│       │           ├── Constants.py
│       │           ├── Environment.py
│       │           ├── Logs.py
│       │           ├── Node.py
│       │           ├── Options.py
│       │           ├── Runner.py
│       │           ├── Scripting.py
│       │           ├── Task.py
│       │           ├── TaskGen.py
│       │           ├── Tools
│       │           │   ├── __init__.py
│       │           │   ├── ar.py
│       │           │   ├── cc.py
│       │           │   ├── ccroot.py
│       │           │   ├── compiler_cc.py
│       │           │   ├── compiler_cxx.py
│       │           │   ├── compiler_d.py
│       │           │   ├── config_c.py
│       │           │   ├── cxx.py
│       │           │   ├── d.py
│       │           │   ├── dmd.py
│       │           │   ├── gas.py
│       │           │   ├── gcc.py
│       │           │   ├── gdc.py
│       │           │   ├── gnu_dirs.py
│       │           │   ├── gob2.py
│       │           │   ├── gxx.py
│       │           │   ├── icc.py
│       │           │   ├── icpc.py
│       │           │   ├── intltool.py
│       │           │   ├── libtool.py
│       │           │   ├── misc.py
│       │           │   ├── nasm.py
│       │           │   ├── node_addon.py
│       │           │   ├── osx.py
│       │           │   ├── preproc.py
│       │           │   ├── python.py
│       │           │   ├── suncc.py
│       │           │   ├── suncxx.py
│       │           │   ├── unittestw.py
│       │           │   ├── winres.py
│       │           │   ├── xlc.py
│       │           │   └── xlcxx.py
│       │           ├── Utils.py
│       │           ├── __init__.py
│       │           ├── ansiterm.py
│       │           ├── pproc.py
│       │           └── py3kfixes.py
│       └── share
│           └── man
│               └── man1
│                   └── node.1
├── tree
│   └── 1.6.0
│       ├── CHANGES
│       ├── INSTALL_RECEIPT.json
│       ├── LICENSE
│       ├── README
│       ├── bin
│       │   └── tree
│       └── share
│           └── man
│               └── man1
│                   └── tree.1
└── wget
    └── 1.13.4
        ├── AUTHORS
        ├── COPYING
        ├── ChangeLog
        ├── INSTALL_RECEIPT.json
        ├── README
        ├── bin
        │   └── wget
        └── share
            └── man
                └── man1
                    └── wget.1

27 directories, 93 files
div-mm:/usr/local/Cellar u1$ brew list
nkf node tree wget
div-mm:/usr/local/Cellar u1$ brew info
4 kegs, 97 files, 8.5M
div-mm:/usr/local/Cellar u1$ 

コマンドとしては、「/usr/local/bin/」にシンボリック・リンクが作られているようだ;
div-mm:/usr/local/Cellar u1$ ll `which *`
lrwxr-xr-x  1 u1  admin  27  2 12 19:52 /usr/local/bin/nkf@ -> ../Cellar/nkf/2.1.2/bin/nkf
lrwxr-xr-x  1 u1  admin  29  1 19 17:37 /usr/local/bin/node@ -> ../Cellar/node/0.6.7/bin/node
lrwxr-xr-x  1 u1  admin  29  2 12 19:37 /usr/local/bin/tree@ -> ../Cellar/tree/1.6.0/bin/tree
lrwxr-xr-x  1 u1  admin  30  2 12 19:07 /usr/local/bin/wget@ -> ../Cellar/wget/1.13.4/bin/wget
div-mm:/usr/local/Cellar u1$ 
 
マニュアルとしては、「/usr/local/share/man/」以下に、
  • 直接:man1/brew.1
  • シンボリック・リンク:msn1/(nkf.1, node.1, npm*.1,tree.1,wg万et.1), man3/npm-*,3
収納されている。これらの$PATHや$MANPATHは、以前の「Snow Leopard」でのMacPort用設置の名残で定義されている。

ーーーー このポストの履歴
  1. 開始 2012-02-14 (火) 12:41
  2. 追加 2012-02-14  (火) 23:48 コマンドやマニュアルの位置


2012-02-07

「Lion10.7の標準Apache2」での設定状況

mod_wsgiの設定の為に、調べた結果をまとめておくと;
 

Mac OS X(Unix活用大全) ソースから(Apache Webサーバー)
標準設定ファイル p371 (/private)/etc/apache2/httpd.conf p44 /usr/local/apache2/conf/httpd.conf
ロードモジュール p363
p362
p361
$ httpd -l
$ httpd -M
/usr/libexec/apache2/
p172
p179
$ apachectl -l,
/usr/local/apache2/modules/
ServerRoot p372 “/usr” ← p372 p45 “/usr/local/apache2” ← p45
Apache制御
p379
/usr/sbin/apachectl, apxs
引数:configtest, start, stop, restart
p51 /usr/local/apache2/bin/apachectl
ErrorLog p368 (/private)/var/log/apache2/error_log p59 logs/error_log ← p59
本体 p222 /usr/sbin/httpd






参考書
Mac OS X UNIX活用大全
Apache Webサーバー Apach2 2/1.3対応


大津 真・著
辻 秀典、渡辺 高志、鈴木 幸敏、
&できるシリーズ編集部


アスキー・メディアワークス, 2010
インプレスジャパン, 2006-07.


ISBN-13: 978-4-04-868377-7
ISBN-10: 4-8443-2265-6


となる。

Lionの立ち上がりには「Mac OS X UNIX活用大全, p216」に説明されるように、「launchd」が先頭のプロセスとして起動し、ここからデーモン(daemon)やエージェント(agent)が数珠つなぎに起動される。Apache2はデーモンとして起動される。p221には「Apacheの設定ファイルとして」、「/System/Library/LaunchDaemons/org.apache.httpd.plist」がある。Lionでも、同じようだ;
<pre class="brush:bash">
div-mm:/System/Library/LaunchDaemons u1$ cat org.apache.httpd.plist 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Disabled</key>
 <true/>
 <key>Label</key>
 <string>org.apache.httpd</string>
 <key>OnDemand</key>
 <false/>
 <key>ProgramArguments</key>
 <array>
  <string>/usr/sbin/httpd</string>
  <string>-D</string>
  <string>FOREGROUND</string>
  <string>-D</string>
  <string>WEBSHARING_ON</string>
 </array>
 <key>SHAuthorizationRight</key>
 <string>system.preferences</string>
</dict>
</plist>
div-mm:/System/Library/LaunchDaemons u1$ 

従って、他のヴァージョンのApacheを用意した場合、上のファイルの
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/httpd</string>
        <string>-D</string>
        <string>FOREGROUND</string>
        <string>-D</string>
        <string>WEBSHARING_ON</string>
    </array>

部分を書き換えれば良いだけと、推定される。

上記のp369、「Apachの設定ファイルの概要」の説明にあるディレクトリ「/etc/apache2」のtreeを示しておく;

div-mm:/etc/apache2 u1$ tree
.
├── extra
│   ├── httpd-autoindex.conf
│   ├── httpd-dav.conf
│   ├── httpd-default.conf
│   ├── httpd-info.conf
│   ├── httpd-languages.conf
│   ├── httpd-manual.conf
│   ├── httpd-mpm.conf
│   ├── httpd-multilang-errordoc.conf
│   ├── httpd-ssl.conf
│   ├── httpd-userdir.conf
│   └── httpd-vhosts.conf
├── httpd.conf
├── httpd.conf.back1
├── httpd.conf.back2
├── httpd.conf.back3
├── httpd.conf.back4
├── httpd.conf.back5
├── httpd.conf.back6.ok
├── httpd.conf.default
├── httpd.conf.default.shiftJis
├── httpd.conf.default.shiftJis.roman.txt
├── httpd.conf.default.shiftJis.utf8
├── httpd.conf.default.utf8
├── httpd_ACSServer.conf
├── httpd_devicemanagement.conf
├── httpd_podcastlibrary.conf
├── magic
├── mime.types
├── original
│   ├── extra
│   │   ├── httpd-autoindex.conf
│   │   ├── httpd-dav.conf
│   │   ├── httpd-default.conf
│   │   ├── httpd-info.conf
│   │   ├── httpd-languages.conf
│   │   ├── httpd-manual.conf
│   │   ├── httpd-mpm.conf
│   │   ├── httpd-multilang-errordoc.conf
│   │   ├── httpd-ssl.conf
│   │   ├── httpd-userdir.conf
│   │   └── httpd-vhosts.conf
│   └── httpd.conf
├── other
│   ├── bonjour.conf
│   └── php5.conf
├── users
│   └── u1.conf
└── webapps
    ├── com.apple.webapp.ACSServer.plist
    ├── com.apple.webapp.devicemgr.plist
    ├── com.apple.webapp.php.plist
    └── com.apple.webapp.podcastwikiui.plist

6 directories, 47 files
div-mm:/etc/apache2 u1$ 




ーーーー このポストの履歴
  1. 開始 2012-02-07 (火) 20:53
  2. 追加 2012-02-10  (金) 15:57 LionでのApacheの起動 
  3. 追加 2012-02-16  (木) 18:54  /etc/apache2」のtree

2012-02-06

図書紹介#010:「WSGIウェブプログラミング」

先々週に購入したものの、書き忘れていた。本屋さんで偶然拝見して購入した。この手の本は、検索ではなかなか気づかないので、本屋さんの醍醐味を感じた。
  • 「WSGIウェブプログラミング」
    • 桑井 博之・著
    • 株) カットシステム、2012-02-10
    • ISBN-13: 978-4-87783-288-9
WSGIとは、Pythonとウェブサーバーとのインターフェイスをするような仕組みらしいです。Djangoのようなフルスタックなフレームワークにすぐ手を出す前に、一度眺めてみるかな。

ただし、WSGIはPython2.6系しかサポートしないので、Lionに標準搭載のPython2.7.1を切り替えたり、Apache2.2へのモジュール追加などのした準備がいるようです。現在、ボチボチ準備をしているところです。

なお、偶然ですが、
といった方向もあるようです。

これまた書き忘れていたのですが、この本をみて、自分の問題点を「Apple サポート
コミュニティ Mac OS X v10.7 Lion」に質問を出していましたが、コメントをいただけなかったのですが、今日、Hirokiさんから丁寧な解説を頂戴しました;
初めての「apxs」コマンドを使っていたいと思います。

自分でmod_wsgiをコンパイルする為に、まずは、ブラウザで;
にアクセスし、~/Downloadに入手した後からの ターミナルの記録を参考までに示しておきます。;
 div-mm:~ u1$ cd Downloads/
div-mm:~/Downloads u1$ ll
total 272
-rw-r--r--  1 u1  staff   20150  2  4 12:55 mCv15BGq(1).part.png
-rw-r--r--@ 1 u1  staff  117930  2  7 18:25 mod_wsgi-3.3.tar.gz
div-mm:~/Downloads u1$ tar zxvf mod_wsgi-3.3.tar.gz
x mod_wsgi-3.3/
x mod_wsgi-3.3/configure
x mod_wsgi-3.3/configure.ac
x mod_wsgi-3.3/LICENCE
x mod_wsgi-3.3/mod_wsgi.c
x mod_wsgi-3.3/posix-ap1X.mk.in
x mod_wsgi-3.3/posix-ap2X.mk.in
x mod_wsgi-3.3/README
x mod_wsgi-3.3/win32-ap22py26.mk
x mod_wsgi-3.3/win32-ap22py31.mk
div-mm:~/Downloads u1$ ll
total 272
-rw-r--r--   1 u1  staff   20150  2  4 12:55 mCv15BGq(1).part.png
drwxr-xr-x@ 11 u1  staff     374  7 26  2010 mod_wsgi-3.3/
-rw-r--r--@  1 u1  staff  117930  2  7 18:25 mod_wsgi-3.3.tar.gz
div-mm:~/Downloads u1$ cd mod_wsgi-3.3/
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll
total 1176
-rw-r--r--@ 1 u1  staff   11358  6 23  2007 LICENCE
-rw-r--r--@ 1 u1  staff   18063  7 26  2010 README
-rwxr-xr-x@ 1 u1  staff   80107 11 23  2009 configure*
-rw-r--r--@ 1 u1  staff    5886 11 23  2009 configure.ac
-rw-r--r--@ 1 u1  staff  459306  7 26  2010 mod_wsgi.c
-rw-r--r--@ 1 u1  staff    1195  6 21  2009 posix-ap1X.mk.in
-rw-r--r--@ 1 u1  staff    1247  6 21  2009 posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff     914  6 21  2009 win32-ap22py26.mk
-rw-r--r--@ 1 u1  staff     914  7 17  2009 win32-ap22py31.mk
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ./configure --with-apxs=/usr/sbin/apxs --with-python=/usr/bin/python
checking Apache version... 2.2.21
configure: creating ./config.status
config.status: creating Makefile
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll
total 1248
-rw-r--r--@ 1 u1  staff   11358  6 23  2007 LICENCE
-rw-r--r--  1 u1  staff    1563  2  7 18:39 Makefile
lrwxr-xr-x  1 u1  staff      16  2  7 18:39 Makefile.in@ -> posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff   18063  7 26  2010 README
-rw-r--r--  1 u1  staff    4024  2  7 18:39 config.log
-rwxr-xr-x  1 u1  staff   20810  2  7 18:39 config.status*
-rwxr-xr-x@ 1 u1  staff   80107 11 23  2009 configure*
-rw-r--r--@ 1 u1  staff    5886 11 23  2009 configure.ac
-rw-r--r--@ 1 u1  staff  459306  7 26  2010 mod_wsgi.c
-rw-r--r--@ 1 u1  staff    1195  6 21  2009 posix-ap1X.mk.in
-rw-r--r--@ 1 u1  staff    1247  6 21  2009 posix-ap2X.mk.in
-rw-r--r--@ 1 u1  staff     914  6 21  2009 win32-ap22py26.mk
-rw-r--r--@ 1 u1  staff     914  7 17  2009 win32-ap22py31.mk
div-mm:~/Downloads/mod_wsgi-3.3 u1$ make
/usr/sbin/apxs -c -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -Wc,'-arch x86_64' -Wc,'-arch i386' mod_wsgi.c -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/  -arch x86_64 -arch i386 -ldl  -framework CoreFoundation 
/usr/share/apr-1/build-1/libtool --silent --mode=compile gcc    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -I/usr/local/include -I/usr/include/apache2  -I/usr/include/apr-1   -I/usr/include/apr-1  -arch x86_64 -arch i386 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -DENABLE_DTRACE -DMACOSX -DNDEBUG -DNDEBUG -DENABLE_DTRACE  -c -o mod_wsgi.lo mod_wsgi.c && touch mod_wsgi.slo
/usr/share/apr-1/build-1/libtool --silent --mode=link gcc -o mod_wsgi.la  -rpath /usr/libexec/apache2 -module -avoid-version    mod_wsgi.lo -Wl,-F/System/Library/Frameworks -framework Python -u _PyMac_Error /System/Library/Frameworks/ -arch x86_64 -arch i386 -ldl -framework CoreFoundation
warning: no debug symbols in executable (-arch x86_64)
warning: no debug symbols in executable (-arch i386)
div-mm:~/Downloads/mod_wsgi-3.3 u1$
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ls
LICENCE            README             configure*         mod_wsgi.la        mod_wsgi.slo       win32-ap22py26.mk
Makefile           config.log         configure.ac       mod_wsgi.lo        posix-ap1X.mk.in   win32-ap22py31.mk
Makefile.in@       config.status*     mod_wsgi.c         mod_wsgi.o         posix-ap2X.mk.in
div-mm:~/Downloads/mod_wsgi-3.3 u1$ sudo make install
Password:
/usr/sbin/apxs -i -S LIBEXECDIR=/usr/libexec/apache2 -n 'mod_wsgi' mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='/usr/share/apr-1/build-1/libtool' mod_wsgi.la /usr/libexec/apache2
/usr/share/apr-1/build-1/libtool --mode=install cp mod_wsgi.la /usr/libexec/apache2/
libtool: install: cp .libs/mod_wsgi.so /usr/libexec/apache2/mod_wsgi.so
libtool: install: cp .libs/mod_wsgi.lai /usr/libexec/apache2/mod_wsgi.la
libtool: install: cp .libs/mod_wsgi.a /usr/libexec/apache2/mod_wsgi.a
libtool: install: chmod 644 /usr/libexec/apache2/mod_wsgi.a
libtool: install: ranlib /usr/libexec/apache2/mod_wsgi.a
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/libexec/apache2

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
     during execution

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
chmod 755 /usr/libexec/apache2/mod_wsgi.so
div-mm:~/Downloads/mod_wsgi-3.3 u1$ ll /usr/libexec/apache2 |grep wsgi
-rwxr-xr-x  1 root  wheel    406120  2  7 18:49 mod_wsgi.so*
div-mm:~/Downloads/mod_wsgi-3.3 u1$


ーーーー このポストの履歴
  1. 開始 2012-02-06 (月) 23:29
  2. 追加 2012-02-07  (火) 17:26  「Apple サポートコミュニティ Mac OS X v10.7 Lion」に質問
  3. 追加 2012-02-16  (木) 21:50  mod_wsgiをコンパイルした時のターミナルの記録


図書紹介#009:「Sams Teach Yourself Core Data for Mac and iOS in 24 Hours」

Amazonで検索中に偶然に拝見した。四百ページを超える本を24時間で教えるというのは眉唾だと思うが、自分の知りたい事が書いてありそうなので買ってみた;
  • 「Sams Teach Yourself Core Data for Mac and iOS in 24 Hours」
    • Jesse Feiler・著
    • Pearson Education, Inc. 2012.
    • ISBN-13: 978-0-672-33577-8
まだ読み出して2回目で、p15だ。けれど、文章は判り易い。簡単な事例をもとに具体的操作を中心に説明が出て来る様なので「初めてのXcode4」に怯える私には心強い味方に成りそうだ。

同系統の本に;
  • Cocoa Programming for Mac OS X
  • Learning Objective-C 2.0
などもあるらしい。先の話だが...。

なお、この本を買った日、電車のなかで読んでいた時、開き難いので;
  • 真ん中で逆に反り返して、開き癖をつけていたら、半分に割れてしまった。
  • 工作用ボンドで接着したが、オライリー並みの強度は欲しい所だ。

ーーーー このポストの履歴
  1. 開始 2012-02-06 (月) 17:43

2012-02-05

図書紹介#008:「HTTML5・JavaScript・CSS3アプリケーション開発 入門」


HTMLのDOMに関する簡単な入門書を見たいと思っていたので、区の図書館から借りてみた;
  • 「HTTML5・JavaScript・CSS3アプリケーション開発 入門」
    • 右京 和馬、白石 俊平、山崎 大助、園田 誠、古籏 一浩、田中 正裕、久保田 光則、小林 信次・共
    • 日経BP社、2011-09
    • ISBN978-4-8222-2267-3
    • 大田文化の森情報館・所蔵
日経ソフトウェアという雑誌の記事(2010-5〜2011-08)を集めたらしい。記事と事例(DLできるが、サイト表示が間違っているので検索した)の案配が善くできている。2日程で読み終える事ができた。細かいところにミスがあったり、説明不足が在るが、概ね判るから凄い。

「第5章 再入門!今どきのJavaScript」は判り良かった。本格的なHTML5の解説書が読めるような気になって来た。

ーーーー このポストの履歴
  1. 開始 2012-02-05 (日) 16:06

図書紹介#007:「つくって覚えるHTML5入門」

区の図書館から借りてみた。

  •  「つくって覚えるHTML5入門
    • オフィス加減・著
    • アスキー・メディアワーククス, 2011-08
    •  ISBN978-4-04-870517-2
    • 太田区立多摩川図書館
 独特な感触の本の為に、好き嫌いが激しかろう。

興味の在るところ;
  • 2Dグラフィックス
  • Web Strage
  • Web SQL Database
などを摘み食いしてみた。「2Dグラフィックス」は、十分にSVGを凌げそうだ。

データの保存も、素人でも気楽に利用できそうで嬉しい。

至る所に「DOM: Dynamic Object Model」出て来るが、説明無く使っているで、見ている方が苛立ってしまう程だ。

ーーーー このポストの履歴

  1. 開始 2012-02-05 (日) 15:42

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...