Mac OS X でコマンドラインでパッケージをインストール

pkg や .mpkg ファイルをリモートの XServe にインストールするときなど,困ることがあります.
これらのファイルは Finder でダブルクリックするとインストーラが起動するのですが,
これが GUI であるためです.
VNC で接続してインストールという手もありますが,もっと簡単にコマンドラインインストーラを起動することができます.

 $ installer -pkg <パッケージファイル> -target <インストール先ボリューム> 

<インストール先ボリューム> は GUI でも聞かれるインストール先ボリュームと同じです.
起動ディスクと同じであれば / で大丈夫です.

その他のオプションは man を参照.

僕は手元の Mac でもこのコマンドでインストールしています.
GUI より断然楽だし.

reftex-mode

僕は Microsoft Word のような WYSIWIG なワープロよりも,コマンドで整形できる Latex の方が好みです.
そんな僕でも,比較的長い書類(卒論とか修論とか)を書くときは参照関係がゴチャゴチャになって投げ出したくなってしまいます.
Emacs での Latex 環境といてば Yatex を使っている人は多いと思います.
いろんな補完をやってくれる Yatex は本当に便利.
しかし,Yatex でも上記の問題に対しては貧弱です.
そこで,僕は reftex-mode を使ってます.

設定

(add-hook 'yatex-mode-hook
#'(lambda ()
(reftex-mode 1)
(define-key reftex-mode-map
(concat YaTeX-prefix ">") 'YaTeX-comment-region)
(define-key reftex-mode-map
(concat YaTeX-prefix "<") 'YaTeX-uncomment-region)))

キーバインド

C-c = table of contents を見る
C-c ( \label を貼る
C-c ) \ref を貼る (\label を参照する)
C-c [ \cite を貼る
C-c & 相互参照先を見る.

特に C-c = がとても便利です.
↓こんな感じで目次で参照できます.
reftex-mode
目次からファイルに飛んだりもできます.
これだけでも reftex-mode を使うメリットがあります.

長さを自動調整する矢印

矢印に文字を付加したい場合 \stackrel{}{} を使いますが,これで表示される矢印は付加する
文字列の長さに関係なく一定の長さで出力されます.
自動調整したい場合は amsmath スタイルの xleftarrow/xrightarrow を使います.

例:

\documentclass{jarticle}
\usepackage{amsmath}
\begin{document}
$\xleftarrow[under]{top}$
$\xrightarrow[under]{top}$
\end{document}

xleftarrow/xrightarrow はそれぞれ左矢印,右矢印を出力するコマンドです.
[] の中身は矢印の下側に出力され,{} の中身は矢印の上側に出力されます.

コマンドラインで dmg ファイルをマウント

Mac OS X では dmg 形式のファイルはダブルクリックでマウントすることができます.
しかし,リモートで作業している場合これができません.
そこでコマンドラインからマウントしたい場合 hdiutil を使います.

 $ hdiutil mount <dmgファイル>
これで /Volumes 以下にマウントされます.
アンマウントしたい場合は
 $ hdiutl unmount /Volumes/<アンマウントしたいディレクトリ>

僕は手元のマシンでもコマンドラインでmount/unmountします.

Tomcatで基本認証

Tomcat で基本認証する方法として,Tomcat 自身で認証する方法と,
Aapche と連携して Apache 側の認証機構を用いる方法の二つの方法が考えられます.
ここでは前者の方法について説明します.

・Webアプリの設定
WEB-INF/web.xml に以下のような記述を加えます.
(<web-app> の直下に)

    <security-constraint>
<web-resource-collection>
<web-resource-name>SPIE-CE</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>role1</role-name>
</security-role>
tomcat-users.xmlの編集
<role rolename="role1"/> <!-- security-role と合わせること -->
<user username="role1" password="tomcat" roles="role1"/>

Tomcatの基本認証にMySQLを利用する

Tomcat の基本認証に MySQL を利用することができます.
ユーザが運用時に変化するような Web アプリの場合にはこれが便利だと思います.
各Webアプリ側の設定はこちら

1. DB 設定

create database authentication;

create table user_table (
user varchar(30),
pass varchar(30)
);

create table role_table (
user varchar(30),
role varchar(30)
);

grant select, insert, update, delete on authentication.*
to 'authtest'@'localhost' identified by 'authtest';

テーブル名,カラム名は自由につけることができますが,以降の設定で合わせる必要があります.

2. server.xml の設定
元々有効になっている「UserDatabaseRealm」に関する部分をコメントにし、
JDBCRealm用として記述されている中のMySQLを使うものをコメントを外して
有効にする.

<!--
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

    • >

<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/authentication"
connectionName="authtest" connectionPassword="authtest"
userTable="user_table" userNameCol="user" userCredCol="pass"
userRoleTable="role_table" roleNameCol="role" />

driverName はドライバのクラス名に合わせます.
この例は Connector/J を利用している場合の記述です.
~Table,~Col は 1. で設定したテーブル名,カラム名に合わせます.

3. DB へ入力
テストのために一件登録してみます.
ここではロールを role1 とします.
他のロール名でもかまいません.

insert into user_table (user, pass) values ('sue', 'sue');
insert into role_table (user, role) values ('sue', 'role1');

"Tomcat Webアプリケーションマネージャ"もこのDBを使うようになるので,これを使う場合は
ここで manager ロールも登録しておく必要があります.

4. ドライバを配置
ドライバの入った jar を $CATALINA_HOME/common/endorsed/ 以下に格納

5. tomcat を再起動

Cygwin で platex を簡単にインストールする

WindowsTex環境を用意するのは昔は結構面倒だったんですけど,今はかなり手軽になってます.
Cygwin を使っている方は以下のリンク先の方法で簡単にインスールできます.
Cygwin で 日本語 TeX --- ptetex を簡単インストール

バッファリストの保存/読み込み

手前味噌ですが...

Emacs で文書やプログラムを書く場合,C-x b などでバッファの切り替えをやるというのは
メジャで非常に便利なのですが,一度 Emacs を落とすとバッファが消えてしまい最初から
開き直さなければならなくなります.

そこでバッファのリストを保存し,再起動後にそれを読み込めると便利です.

save-bufferlist.elEmacs でバッファリストを保存するための Elisp です.

実際にやっているのは C-x C-b で見れるバッファのリストをファイルに掃き出し,それを一つづつ find-file してるだけ.
これだけなんですが,意外に便利です.

tuareg-mode

OCaml のための Emacs のモードです.
本家.ダウンロードはこちらから

基本的なキーバインド

C-c C-e 評価
C-c C-b バッファを評価
C-c C-r リージョン内を評価
M-; コメント. マークしているときはリージョン内をコメントアウト

zsh

zsh は非常に強力なシェルです.
bashtcsh のいいところを包含している感じのシェルです.
僕は FreeBSD を使っていたのでもともと tcsh 派だったのですが,今は完全にzsh派です.
とりあえずこれを見ればすごさが分かるでしょう.

XServe のサーバの起動/停止

XServe のサーバを起動/停止する場合"サーバ管理"を使うのが普通ですが,これは Mac のツールです.
Windows とか Unix/Linux しか手元に無い場合,Mac でもサーバ管理がインストールされていない場合は
コマンドラインで起動/停止を行います.

・リスト表示

 # serveradmin list 
・サーバ起動 (vpnの場合)
 # serveradmin start vpn 
・サーバ停止 (vpnの場合)
 # serveradmin stop vpn