Dec 11, 2012

[Apple] OS X Mountain Lion で Apache HTTP Server を有効にする方法

Mountain Lion で Apache HTTP Server を有効にする方法をメモ。

Apache HTTP Server の起動

$ httpd -v
Server version: Apache/2.2.22 (Unix)
Server built:   Aug 24 2012 17:16:58

$ sudo apachectl start
$

HTML の編集

DocumentRoot は /Library/WebServer/Documents になっている。

$ cat /Library/WebServer/Documents/index.html.en 
<html><body><h1>It works!</h1></body></html>

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 12, 2012

[Apple] [Apple] iOS 用 Web サイト構築で可能なこと - 傾き取得

DeviceOrientationEvent のサンプル
3軸加速度センサーから alpha, beta, gamma の値を取得し、Web ページ上に表示する。

[alpha,beta,gamma の意味] [iPhone キャプチャ]

ソースコード

  <div id="orientation" >
    <div>alpha:<span id="alpha" /></div>
    <div>beta:<span id="beta" /></div>
    <div>gamma:<span id="gamma" /></div>
  </div>
  <script defer="defer">
  window.addEventListener('deviceorientation', 
    function(evt) {
      document.getElementById("alpha").innerText = evt.alpha;
      document.getElementById("beta").innerText = evt.beta;
      document.getElementById("gamma").innerText = evt.gamma;
    }, false
  );
  </script>

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] iOS 用 Web サイト構築で可能なこと - コンパス

webkitcompass のサンプル
方角を定期的に取得し、Web ページ上に表示する。

[iPhone キャプチャ]

ソースコード

  <div id="orientation" >
    <div>方角:<span id="webkitCompassHeading" /></div>
    <div>誤差:<span id="webkitCompassAccuracy" /></div>
  </div>
  <script defer="defer">
  window.addEventListener('deviceorientation', 
    function(evt) {
      document.getElementById("webkitCompassHeading").innerText = evt.webkitCompassHeading;
      document.getElementById("webkitCompassAccuracy").innerText = evt.webkitCompassAccuracy;
    }, false
  );
  </script>

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] iOS 用 Web サイト構築で可能なこと - 位置情報取得

geolocation のサンプル
緯度、経度、高度を定期的に取得し、Web ページ上に表示する。
方角、速度もインタフェースは用意されているのだが iPhone 4S では取得できなかった。 何か制約があるのだろうか?? 今度調べてみよう。

[iPhone キャプチャ]

ソースコード

  <div id="error" style="color:red" />
  <div id="geolocation" style="color:black" >
    <div>緯度:<span id="latitude" /></div>
    <div>経度:<span id="longitude" /></div>
    <div>誤差:<span id="accuracy" /></div>
    <hr />
    <div>高度:<span id="altitude" /></div>
    <div>誤差:<span id="altitudeAccuracy" /></div>
    <hr />
    <div>方角:<span id="heading" /></div>
    <div>速度:<span id="speed" /></div>
  </div>
  <script defer="defer">
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(
      function(position) {
        document.getElementById("latitude").innerHTML = position.coords.latitude;
        document.getElementById("longitude").innerHTML = position.coords.longitude;
        document.getElementById("accuracy").innerHTML = position.coords.accuracy;
        document.getElementById("altitude").innerHTML = position.coords.altitude;
        document.getElementById("altitudeAccuracy").innerHTML = position.coords.altitudeAccuracy;
        document.getElementById("heading").innerHTML = position.coords.heading;
        document.getElementById("speed").innerHTML = position.coords.speed;
      },
      function(error) {
        document.getElementById("error").innerHTML = "エラー: " + error.code;
      }
    );
  } else {
    document.getElementById("error").innerHTML = "位置情報が取得できません。";
  }
  </script>

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 11, 2012

[Apple] iOS 用 Web サイト構築のための情報をメモ(機能別)

LocalData

Data Management Coding How-To's for Safari on iPhone, Mac OS X, and Windows
https://developer.apple.com/library/safari/codinghowtos/Desktop/DataManagement/_index.html

GPS

Geolocation API Specification
http://www.w3.org/TR/geolocation-API/

Motion

DeviceMotionEvent Class Reference
https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/DeviceMotionEventClassRef/DeviceMotionEvent/DeviceMotionEvent.html

Orientation

DeviceOrientationEvent Class Reference
https://developer.apple.com/library/safari/documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html

Touch

Touch Class Reference
https://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchClassReference/Touch/Touch.html
TouchEvent Class Reference
https://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html
TouchList Class Reference
https://developer.apple.com/library/safari/documentation/UserExperience/Reference/TouchListClassReference/TouchList/TouchList.html

Gesture

GestureEvent Class Reference
https://developer.apple.com/library/safari/documentation/UserExperience/Reference/GestureEventClassReference/GestureEvent/GestureEvent.html

file upload

picup
http://picupapp.com/
iCab Mobile
http://www.parorrey.com/blog/technology/how-to-fix-iphoneipad-mobile-safari-greyed-out-and-disabled-file-upload-control/
iphone-photo-picker
http://code.google.com/p/iphone-photo-picker/
iPhone Safariから画像を投稿する方法
http://www.1x1.jp/blog/2010/08/tips_for_upload_image_from_iphone_safari.html

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] iOS 用 Web サイト構築のための情報をメモ

iOS Human Interface Guidelines
https://developer.apple.com/library/safari/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html
Getting Started with iOS Web Apps
https://developer.apple.com/library/safari/referencelibrary/GettingStarted/GS_iPhoneWebApp/_index.html
DOMWindow Additions
http://developer.apple.com/library/safari/#documentation/DataManagement/Reference/DOMWindowAdditionsReference/DOMWindowAdditions/DOMWindowAdditions.html

iPhone

User Experience Coding How-To's for Safari on iPhone
https://developer.apple.com/library/safari/codinghowtos/Mobile/UserExperience/_index.html
Safari on iPhone Graphics, Media, and Visual Effects Coding How-To's
https://developer.apple.com/library/safari/codinghowtos/Mobile/GraphicsMediaAndVisualEffects/_index.html
Safari on iPhone Tools Coding How-To's
https://developer.apple.com/library/safari/codinghowtos/Mobile/Tools/_index.html

iPad

Preparing Your Web Content for iPad
https://developer.apple.com/library/safari/technotes/tn2010/tn2262/_index.html

Dashcode

Dashcode User Guide
https://developer.apple.com/library/safari/#documentation/AppleApplications/Conceptual/Dashcode_UserGuide/Contents/Resources/en.lproj/Introduction/Introduction.html

iPhone 用サンプルコード

iPhoneIntegration
https://developer.apple.com/library/safari/samplecode/iPhoneIntegration/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004483
iPhoneOrientation
https://developer.apple.com/library/safari/samplecode/iPhoneOrientation/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004520
iPhoneButtons
https://developer.apple.com/library/safari/samplecode/iPhoneButtons/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004474
iPhoneListPatterns
https://developer.apple.com/library/safari/samplecode/iPhoneListPatterns/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004469
MakeiPhoneRefMovie
https://developer.apple.com/library/safari/samplecode/makeiPhoneRefMovie/Introduction/Intro.html#//apple_ref/doc/uid/DTS10004417

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 09, 2012

[Apple] IP アドレスからオフィス/自宅判定して IM Status を変更する

IM クライアントの Adium は AppleScript でかなり自由に制御できる。 IP アドレスから現在オフィスに居るか自宅に居るかを判定して IM の Status を変更してみる。

  1. IP アドレスが 192.168.10.0/24 の場合はオフィスと判定し Status を "@office" に変更
  2. IP アドレスが 192.168.20.0/24 の場合はオフィスと判定し Status を "@home" に変更

以下の AppleScript で実現できる。

tell application "Adium"
	set ipaddress to IPv4 address of (get system info)
	if ipaddress begins with "192.168.10." then
		set location to "@office"
	else if ipaddress begins with "192.168.20." then
		set location to "@home"
	else
		set location to ""
	end if
	
	if location is not "" then
		set the status message of every account to location
	end if
end tell

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jul 01, 2011

[Apple] 固定のレスポンスを返す HTTP Server を立てる

ローカルの MacOS X にどんなリクエストに対しても固定のレスポンスを返す HTTP Server を立ててみた。 手軽に利用できる python の BaseHTTPServer をカスタマイズして実現してある。

HTTP Server の準備

以下の様な python のコードを作成。
/usr/share/local-http-server.py

#!/usr/bin/python
import BaseHTTPServer

class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    def do_GET(s):
        s.send_response(200)
        s.send_header("Content-type", "text/html")
        s.end_headers()
        s.wfile.write("")

if __name__ == '__main__':
    BaseHTTPServer.HTTPServer(('localhost', 80), MyHandler).serve_forever()

MacOS X の自動起動設定

/Library/StartupItems/LocalHTTPServer/LocalHTTPServer

#!/bin/sh

. /etc/rc.common

start() {
  /usr/share/local-http-server.py &
}
stop() {
  pid=`ps -ax | grep "/usr/bin/python /usr/share/local-http-server.py" | grep -v grep | sed -E "s/^ +//" | sed -E "s/ .+$//"`
  if [ "$pid" != "" ]
    then
      kill $pid;
  fi
}

case $1 in
  start)
    ConsoleMessage "Starting Local HTTP Server"
    start;
    ;;
  stop)
    ConsoleMessage "Stopping Local HTTP Server"
    stop;
    ;;
  restart)
    ConsoleMessage "Restarting Local HTTP Server"
    stop;
    start;
    ;;
  *)
    echo "$0: unknown argument: $1"
    ;;
esac

/Library/StartupItems/LocalHTTPServer/StartupParameters.plist
{
  Description     = "LocalHTTPServer";
  Provides        = ("LocalHTTPServer");
  OrderPreference = "Early";
}

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 29, 2011

[Apple] iPhone/iPad アプリケーションでパスワードを管理する方法

iPhone/iPad アプリケーションで何がしかのアカウント情報を管理する場合に知っておくべき情報をメモ。 ざっくりまとめると、

  • NSUserDefaults はセキュアでないのでパスワードを保存してはいけない。
  • ユーザ ID は NSUserDefaults に、パスワードは Keychain に保存すべき。
  • Keychain へのアクセスはオープンソースで提供されているラッパを使うと楽。
ということらしい。

GenericKeychain
http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Introduction/Intro.html
Tomute’s Notes
http://d.hatena.ne.jp/tomute/20091121/1258884514
Simple iPhone Keychain Code
http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code
ldandersen / scifihifi-iphone
https://github.com/ldandersen/scifihifi-iphone/tree/master/security
Simple iPhone Tutorial: Password Management using the keychain by using SFHFKeychainUtils
http://gorgando.com/blog/technology/iphone_development/simple-iphone-tutorial-password-management-using-the-keychain-by-using-sfhfkeychainutils
Implementing Application Preferences
http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/Preferences/Preferences.html#//apple_ref/doc/uid/TP40007072-CH6-SW5

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 27, 2011

[Apple] gdata-objectivec-client にチャレンジ

gdata-objectivec-client は Objective-c で Google Data API を利用するためのライブラリ。

gdata-objectivec-client
http://code.google.com/p/gdata-objectivec-client/

とりあえず、 XCode4 のプロジェクトに組み込む手順をメモ。

  1. 最新のコードをチェックアウト。trunk が気になる場合は tag を利用する。
    $ svn checkout http://gdata-objectivec-client.googlecode.com/svn/trunk/ gdata-objectivec-client
    
  2. GData.xcodeproj を iPhone プロジェクトにドラッグ。
  3. iPhone プロジェクトの Targets "MyProject" の "Target Dependencies" に GDataTouchStaticLib 追加。
  4. iPhone プロジェクトの Targets "MyProject" の "Link Binary With Libraries" に libxml2.dylib と libGDataTouchStaticLib.a を追加。
  5. iPhone プロジェクトの Targets "MyProject" の "header search path" に "$(SDKROOT)/usr/include/libxml2" をセット。
  6. iPhone プロジェクトの Targets "MyProject" の "Other C Flags" に "-ObjC -lxml2 -all_load" をセット(Debug、Release 共)。
  7. iPhone プロジェクトのビルドディレクトリ( /Users/me/Library/Developer/Xcode/DerivedData/FamilyLibrary-dgrrozxgfpnutzbxyrxpvrsuvtpr/ とか) の ./Build/Products/Debug-iphonesimulator/Headers を iPhone プロジェクトにコピー。
この設定で iOS Simulator での動作は確認できた。実機は未確認。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 29, 2010

[Apple] MacPorts の "db46 requires the Java..." エラー

MacPorts でアップデートをしようとしたら以下の様なエラーが発生した。

$sudo port upgrade outdated
   (略)
Error: db46 requires the Java for Mac OS X development headers.
Error: Download the Java Developer Package from: <https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719>
Error: Target org.macports.configure returned: missing Java headers
Error: Failed to install db46
Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log
Error: The following dependencies were not installed: python26 db46 gdbm rsync popt
Error: Status 1 encountered during processing.
To report a bug, see <http://guide.macports.org/#project.tickets>

メッセージの通り https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20719 から Java for Mac OS X 10.6 Update 3 Developer Package をダウンロード(要 Apple ID)し、インストールして一件落着。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 22, 2010

[Apple] Apple が MacOS X での Java 提供の打ち切りを示唆

今までも Java に全く力を入れてこなかった Apple が遂に完全にやる気を無くした様だ。 Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes によると、

As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.

This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X. The Java runtime shipping in Mac OS X 10.6 Snow Leopard, and Mac OS X 10.5 Leopard, will continue to be supported and maintained through the standard support cycles of those products.
願わくは、OS 同梱でなくても構わないので MacOS X 用 JDK を我に与え給へ。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 08, 2010

Oct 07, 2010

[Apple] MacOS X でコマンドラインからクリップボードを利用する方法

MacOS X では pbcopy と pbpaster というコマンドが用意されており、コマンドラインから簡単にクリップボードにアクセスすることができる。

$ echo "hoge" | pbcopy
$ pbpaste
hoge
$

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 11, 2010

[Apple] MacOS X で秀丸エディタを使う方法

MacOS X の最大の弱点は良いテキストエディタが無い(見つからない?)ことだと思っている。 以前 Darwine メモ で Wine + 秀丸エディタを試した際は、起動は出来るが日本語表示と日本語入力が出来ないという状態であきらめた。 今回、MikuInstaller という Wine お手軽導入キットがあることを知ったので再度 MacOS X + 秀丸エディタにチャレンジしてみた。

MikuInstaller とは

MikuInstaller 公式サイト によると、

MikuInstaller は、 Wine を Intel 搭載 Macintosh に手軽に導入するためのキットです。
とのこと。

MikuInstaller のインストール

dmg をダウンロード、マウントして、MikuInstaller.app を /Applications にコピーするだけ。 今回は "MikuInstaller-20080803.dmg" を使用した。 ちなみに、MacOS X は SnowLeopard (10.6.4) を使用している。

秀丸エディタのインストール

秀丸エディタのページからインストーラパッケージをダウンロード(今回は "hm801a_signed.exe" を使用した)し、 ダウンロードした exe を /Applications/MikuInstaller.app にドロップ。
しばらくすると秀丸エディタインストーラのダイアログが開く。
[インストーラが開始された]

次の様な警告ダイアログが表示されるかもしれないが、そのまま続行して良い。
[警告ダイアログ]

後は普通にインストールを行う。インストールが完了したら /Users/me/Applications/MikuInstaller 内に "秀丸.app" が作成されている。
[秀丸.app が作成されている]

秀丸エディタの起動

/Users/me/Applications/MikuInstaller/秀丸.app を起動するだけ。
[秀丸が起動!!]

今回は日本語表示、日本語入力共に可能だった。 MacOS X 側のストレージにあるファイル読込・書出も可能。

素晴らしい!!!

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

May 15, 2010

[Apple] MacOS X で .bashrc を使う方法

MacOS X (Snow Leopard) で .bashrc を使う方法をメモ。

.bash_profile の作成

まず ~/.bash_profile を作成する。ユーザ名が me の場合、/Users/me/.bash_profile を作成すれば良い。 .bashrc を使うだけであれば以下の内容で作成するだけで OK。

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

.bashrc の作成

後は ~/.bashrc を作成して適宜内容を記述すれば OK。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 23, 2009

[Apple] Mac OS X の JDK

2009/12/22 現在で最新のもの。

for Mac OS X 10.6 (1.6.0_17)
http://support.apple.com/downloads/Java_for_Mac_OS_X_10_6_Update_1
for Mac OS X 10.5 (1.6.0_17, 1.5.0_22)
http://support.apple.com/downloads/Java_for_Mac_OS_X_10_5_Update_6
for Mac OS X 10.4 (1.5.0_07, 1.4.2_12)
http://support.apple.com/kb/DL281

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] Mac OS X の JDK1.5, 1.6 におけるデフォルト文字エンコーディング

Mac OS X の JDK 1.5 から 1.6 でデフォルト文字エンコーディングが変わっている様なので調べてみた。

実験に使用したコード

$ vi ./Hoge.java
$ cat ./Hoge.java 
public class Hoge {
  public static void main(final String[] args) {
    System.out.println("" + System.getProperty("file.encoding"));
  }
}
$ 

JDK 1.5 の場合

$ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/javac -version
javac 1.5.0_22
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/javac ./Hoge.java 
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java -version
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03-333-10M3025)
Java HotSpot(TM) Client VM (build 1.5.0_22-147, mixed mode)
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java Hoge
UTF8
$ 

JDK 1.6 の場合

$ /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/javac -version
javac 1.6.0_17
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/javac ./Hoge.java
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java Hoge
SJIS
$ 

結論

Mac OS X では、JDK1.5 と 1.6 でデフォルト文字エンコーディングが下記の通り変更されている。

1.5.0_22 UTF8
1.6.0_17 SJIS

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] Snow Leopard に JDK 1.5 をインストールする方法

Mac OS X 10.6 (Snow Leopard) には JDK 1.6 しか用意されていない。 必要があって JDK 1.5 をインストールしたので、その時の手順をメモしておく。

JDK 1.5 のインストール手順

基本的には Snow LeopardのJava環境に手を入れる(2) の手順通り進めれば良い様だ。 但し、xar では Snow Leopard 上で Leopard 用 JDK の pkg を解凍出来ない(下記のエラーが発生)ので、Pacifist を使用する必要がある。

$ xar -zxvf ./JavaForMacOSX10.5Update6.pkg 
Distribution
JavaForMacOSX10.5Update6.pkg/Bom
Error while extracting archive:(JavaForMacOSX10.5Update6.pkg/Bom): io: Could not create file (Not a directory) - ignored
JavaForMacOSX10.5Update6.pkg/PackageInfo
Error while extracting archive:(JavaForMacOSX10.5Update6.pkg/PackageInfo): io: Could not create file (Not a directory) - ignored
JavaForMacOSX10.5Update6.pkg/Payload
Error while extracting archive:(JavaForMacOSX10.5Update6.pkg/Payload): io: Could not create file (Not a directory) - ignored
JavaForMacOSX10.5Update6.pkg/Scripts
Error while extracting archive:(JavaForMacOSX10.5Update6.pkg/Scripts): io: Could not create file (Not a directory) - ignored
Resources/background.tif
Resources/da.lproj/License.rtf
Resources/da.lproj/Localizable.strings

    (SNIP)

Resources/English.lproj
Resources/Dutch.lproj
Resources/da.lproj
Resources
JavaForMacOSX10.5Update6.pkg
$

Pacifist で解凍した後は、以下の通りインストール作業を行う。 ここでは pkg の解凍先を ./JavaForMacOSX10.5Update6 としている。

$ cd ./JavaForMacOSX10.5Update6/System/Library/Frameworks/JavaVM.framework/Versions/
$ ls -al
total 40
drwxr-xr-x  12 root  wheel  408 10 14 09:40 .
drwxr-xr-x  12 root  wheel  408 10 14 09:40 ..
lrwxr-xr-x   1 root  wheel    5 12 22 23:57 1.3 -> 1.3.1
drwxr-xr-x   3 root  wheel  102 11  9 08:08 1.3.1
drwxr-xr-x   3 root  wheel  102 10 14 09:40 1.4.2
lrwxr-xr-x   1 root  wheel    5 12 22 23:57 1.5 -> 1.5.0
drwxr-xr-x   7 root  wheel  238 11  7 03:27 1.5.0
lrwxr-xr-x   1 root  wheel    5 12 22 23:57 1.6 -> 1.6.0
drwxr-xr-x   7 root  wheel  238 11  7 03:27 1.6.0
drwxr-xr-x   8 root  wheel  272 11  9 08:08 A
lrwxr-xr-x   1 root  wheel    1 12 22 23:57 Current -> A
lrwxr-xr-x   1 root  wheel    3 12 22 23:57 CurrentJDK -> 1.5

$ sudo mv ./1.5.0 ./1.5.0_for_Mac_OS_X_10_5
$ sudo mv ./1.5.0_for_Mac_OS_X_10_5 /System/Library/Frameworks/JavaVM.framework/Versions/
$ cd /System/Library/Frameworks/JavaVM.framework/Versions/
$ sudo rm ./1.5.0
$ sudo ln -s ./1.5.0_for_Mac_OS_X_10_5 ./1.5.0
$ sudo chown -R root:wheel ./1.5.0_for_Mac_OS_X_10_5
$ /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java -version
Shared archive: uninstalled generation
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03-333-10M3025)
Java HotSpot(TM) Client VM (build 1.5.0_22-147, mixed mode)
$ 

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 20, 2009

[Apple] プロジェクト毎に Mac OS X Terminal を初期化する方法

  • Terminal をプロジェクト専用に初期化したい
  • プロジェクト専用 Terminal を QuickSilver から簡単に起動したい
を実現する方法。 AppleScript を使って Terminal を起動するだけなので至極簡単。

AppleScript エディタに Terminal を登録

まず AppleScript エディタのライブラリに Terminal を登録する。 既に登録済の場合はこの作業は不要。

  1. AppleScript エディタを起動する

  2. ウィンドウ > ライブラリ を選択。
    [AppleScriptEditor01]

  3. ライブラリウィンドウ左上の "+" ボタンをクリック。Terminal を選択して "開く" ボタンをクリック。
    [AppleScriptEditor02]

  4. ライブラリに Terminal が登録されたことを確認。
    [AppleScriptEditor03]

  5. Terminal 初期化用 AppleScript

    下記の様な AppleScript で Terminal を起動してプロジェクト専用の初期化を行う。 初期化内容は適宜変更のこと。 AppleScript を書き終えたらファイルフォーマットを "アプリケーション" で /Applications に保存。 最後に QuickSilver で Rescan をかけて完了。

    on createTerminalWindow()
      tell application "System Events"
        tell process "Terminal"
          tell menu bar 1
            tell menu bar item "シェル"
              tell menu "シェル"
                tell menu item "新規ウインドウ"
                  tell menu "新規ウインドウ"
                    pick menu item "Mine"
                  end tell
                end tell
              end tell
            end tell
          end tell
        end tell
      end tell
    end createWindow
    
    tell application "Terminal"
      activate
      if not (exists front window) then do script ""
    
      my createTerminalWindow()
    
      do script "cd /Users/me/Projects/001-hogeproject" in front window of application "Terminal"
      do script "export PS1='\\W@\\u\\$'" in front window of application "Terminal"
      do script ". ./projectrc.sh" in front window of application "Terminal"
      do script "clear;pwd" in front window of application "Terminal"
    end tell
    

    Terminal でタブを利用したい場合

    Terminal のタブを作成したい場合は下記の関数を利用する。

    on createTerminalTab()
      tell application "System Events"
        tell process "Terminal"
          tell menu bar 1
            tell menu bar item "シェル"
              tell menu "シェル"
                tell menu item "新規タブ"
                  tell menu "新規タブ"
                    pick menu item "Mine"
                  end tell
                end tell
              end tell
            end tell
          end tell
        end tell
      end tell
    end createTab
    


    後はタブ毎に適宜初期化などを行う。 残念なことにタブ名の編集がうまく行かない。 何かテクニックが必要なのだろうか??
    my createTerminalTab()
    
    set custom title in tab 1 of front window of application "Terminal" to "hogeproject"
    do script "cd /Users/me/Projects/001-hogeproject" in tab 1 of front window of application "Terminal"
    do script "export PS1='\\W@\\u\\$'" in tab 1 of front window of application "Terminal"
    do script ". ./projectrc2.sh" in tab 1 of front window of application "Terminal"
    do script "clear;pwd" in tab 1 of front window of application "Terminal"
    

    Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 19, 2009

[Apple] Mac OS X 起動時に使えるショートカットキー

パワーボタン押下直後に "T" を押すとターゲットモードで起動とか、"C" を押すと DVD から起動とか、 Mac OS X には起動時に使えるショートカットキーがいくつも用意されている。 Apple 公式ドキュメントに一覧を見つけたのでメモしておく。

Mac OS X 10.6 Help - Shortcuts for starting up
http://docs.info.apple.com/article.html?path=Mac/10.6/en/cdb_strtup.html

自動ログインの禁止 起動直後のプログレスインジケータ(くるくる回るヤツ)表示中に「左の Shift」キーを押しっぱなしにする。
ログイン時アプリケーション自動起動の禁止 ログインウィンドウの「ログイン」ボタンをクリックした後「Shift」キーを押しっぱなしにする。
CD/DVD から起動 "C"キー押下
NetBoot ディスクイメージから起動 "N"キー押下
ターゲットディスクモードで起動 "T"キー押下
起動ディスクを選択 Option キー押下
CD/DVD の排出 マウスのボタンを押す
パラメータ RAM のリセット Command (⌘)-Option-P-R キーを同時に押下
詳細なステータスメッセージの表示 (verbose モード) Command (⌘)-V キーを同時に押下
シングルユーザモードで起動 Command (⌘)-S キーを同時に押下
セーフモードで起動 起動音が聞こえた直後に「Shift」キーを押す。プログレスインジケータ(くるくる回るヤツ)が表示されたら「Shift」キーを放す。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 02, 2009

[Apple] Mac OS X でログイン履歴を取得する方法

Mac OS X でログイン履歴を取得する方法をメモ。

ここ 1 週間の履歴を取得する場合

system.log からログイン履歴を取得できる。 但し、system.log は daily rotate で 7 世代まで保持なので、取得できるのは最大 1 週間程度。 何故か私の環境では rotate が止まっていたが・・・。何故??

$ sudo bzip2 -d /var/log/system.log.*.bz2
$ grep "launchd\[1\] has started up" /var/log/system.log*

ログインフック を利用してログイン履歴を保存

Mac OS X のログインフックを利用して自前でログイン履歴を保存することで 1 週間以上のログイン履歴を保持できる。

Mac OS X: ログインフックを作成する
http://support.apple.com/kb/HT2420?viewlocale=ja_JP&locale=ja_JP

まずログインフック用のシェルスクリプトを作成する。 ここでは /usr/share/login-history/login-history.sh というファイルとする。

#!/bin/sh

HISTORY_FILE=/usr/share/login-history/login-history.log
DATE=`date +'%Y/%m/%d %H:%M:%S'`
echo "$DATE" >> $HISTORY_FILE
作成したシェルスクリプトをログインフックとして登録する。
$sudo chmod 755 ./login-history/login-history.sh 
$sudo defaults write com.apple.loginwindow LoginHook /usr/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 29, 2009

[Apple] Mac OS X でスクリーンセーバを起動するアプリケーションを作成する方法

Mac OS X では スクリーンセーバの起動に画面コーナーへの機能割り当てを利用するのが一般的の様だが、出来れば QuickSilver から一発でスクリーンセーバを起動してシステムをロックしたい。 そこでスクリーンセーバを起動するだけのアプリケーションを作成してみた。

スクリーンセーバ起動用アプリケーションの作成方法

アプリケーションは Mac OS X 付属の Automator で簡単に作成できる。

まず Automator を起動して、テンプレートに「アプリケーション」を選択する。
[Automator の起動]

アクションに「シェルスクリプトを実行」を選択し、以下のスクリプトを指定する。

open '/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app'
[スクリプトの指定]

Lock.app という名前で /Applications に保存する。
[保存]

QuickSilver から起動できる様になった!!
[QuickSilver から起動]

余談

上記の様な面倒をしなくても下記のコマンドでいけるかと思ったのだが、QuickSilver はシンボリックリンクの .app を起動してくれなかったので断念。 シンボリックリンクに対応したランチャーを使用する場合や直接 .app を起動する場合は下記で十分。

$ln -s /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app /Applications/Lock.app

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 30, 2009

[Apple] Snow Leopard で Expose、Dashboard に対するファンクションキー割り当てが不安定になる

Snow Leopard を使い始めてからファンクションキーによる Expose、Dashboard の呼び出しが極めて不安定になってしまった。 起動直後に多少まともに動作する時もあるのだけれど、しばらく使用しているとほぼ間違いなく動作しなくなってしまう。 自宅用でも会社用でも同じ症状が出ているので、多分 OS の問題だろう。 何だかよく分からないが、 Dock を再起動すると改善する(ことが多い)。 とても不便なので早く直して欲しい。> Apple

$ killall Dock

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 27, 2009

[Apple] 覚えておきたい Mac OS X Terminal のショートカットキー

Mac OS X Snow Leopard の Terminal を使うときに便利なショートカットキーをリストアップしておく。 これを覚えるだけで随分省力化できる。

CMD + T
新規タブ
CMD + W
タブを閉じる
CMD + K
スクロールバッファを消去
CMD + {
Shift + CMD + ←
前のタブを選択
CMD + }
Shift + CMD + →
次のタブを選択
Shift + CMD + I
タイトルを編集
CMD + N
新規ウィンドウ
CMD + →
次のウィンドウを選択
CMD + ←
前のウィンドウを選択

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Apr 06, 2009

[Apple] iPhone アプリ開発のとっかかりメモ

Apple Developer Connection - iPhone Developer Program
http://developer.apple.com/jp/iphone/program/
Apple Developer Connection - iPhone Dev Center
http://developer.apple.com/iphone/
Apple Developer Connection - iPhone Reference Library - Sample Code
http://developer.apple.com/iphone/library/navigation/SampleCode.html
技術評論社 - 目指せ!iPhone アプリ開発エキスパート
http://gihyo.jp/dev/serial/01/iphone
iPhone-dev
http://iphone-dev.jp/
c/fe - iPhone実機に自作プログラムを転送するまでの手順
http://d.hatena.ne.jp/uzulla/20080911

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Mar 25, 2009

[Apple] Parallels のイメージサイズを最適化する方法

Parallels も長く使っていると、ゲスト OS 上でのファイルの作成・削除の繰り返しでイメージが肥大化してくる。 そうした時に有効なのが、"Parallels Compressor"。 不要なデータを削除し、イメージを最適なサイズまで縮小してくれる。 多少時間はかかるものの(MacBook Pro 2GHz で 3 〜 4 時間程度かかった)、かなりディスクスペースの節約になる。

[Parallels Compressor]

[最適化前]
最適化前
[最適化後]
最適化後

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 05, 2008

[Apple] JAD を Mac OS X にインストール

Mac OS X に JAD をインストールしたときのメモ。 ・・・解凍して移動するだけなのだけれど。

Jad - the fast JAva Decompiler
http://www.kpdus.com/jad.html

JAD のインストール

$ sudo mv ./jad /usr/bin/
Password:
$ sudo chmod 755 /usr/bin/jad
$ jad
Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov (jad@kpdus.com).
Usage:    jad [option(s)] 
Options: -a       - generate JVM instructions as comments (annotate)
         -af      - output fully qualified names when annotating
         -b       - generate redundant braces (braces)
  (略)
         -t       - use tabs instead of spaces for indentation
         -v       - show method names while decompiling
$ 

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 03, 2008

[Apple] Darwine メモ

Darwine は Wine を Mac OS X 用に port したもの。 いい加減秀丸エディタを使うためだけに Parallels & Windows XP を起動するのに疲れたので、Darwine で秀丸エディタが使えないか試してみた。

Darwine
http://darwine.sourceforge.net/
Darwine Builds for OS X
http://www.kronenberg.org/darwine/

Darwine のインストール

Sourceforge の Darwine より Darwine Builds for OS X の方がバージョンが新しいので、そちらを使ってみる。 今回使用したのは Darwine-x86-1.1.5.dmg。 インストール自体は非常に簡単。 dmg をマウントして Darwine と TRIX.app を /Applications にドラッグするだけ。
[Darwine 01]

フォントのインストール

Darwine で使用するフォントをインストールする。 TRIX を使うとフォントを簡単にインストールすることができる。
[TRIX]

フォントを手動でインストールする場合は /Applications/Darwine/Wine.bundle/Contents/share/wine/fonts/ にフォントをコピーすれば良い。

秀丸エディタの実行

/Applications/Darwine/WineHelper.app に hidemaru.exe をドロップすると秀丸エディタが起動する。
[秀丸エディタが起動した]

起動したのは良いのだけれど、日本語入力が出来ない。 どうやら Darwine ではことえりや ATOK での入力が出来ない様だ。 ・・・Darwine の今後のバージョンアップに期待しつつ Parallels を使うしかないな。 秀丸エディタの Mac OS X 版が出ないかな。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 02, 2008

Sep 30, 2008

[Apple] Perian メモ

Perian is a free, open source QuickTime component that adds native support for many popular video formats.
Perian
http://www.perian.org/
SupportedFormats
http://trac.perian.org/wiki/SupportedFormats

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 14, 2008

[Apple] Mac OS X に Subversion をインストール

コマンドラインから svn コマンドを使用したいので、Mac OS X (Tiger) に Subversion をインストールした。

MacPorts でインストールしようと思ったが、エラーが発生してインストールできなかった。

make[1]: *** [buckets/apr_brigade.lo] Error 1
make: *** [all-recursive] Error 1
プログラマの道具箱 さんのエントリ mac portsでsubversionをインストール に記述のあった "sudo port upgrade apr" を試してみたが、apr の更新自体でエラーが発生する始末。

結局 MacPorts でのインストールは諦め、Mac OS X 用のバイナリを DMG で入手してインストールした。 今回は openCollabNet から Subversion 1.5.1-2 Universal.dmg を使用した。

openCollabNet
http://www.collab.net/downloads/community/
普通にインストーラを使用してインストールを実施。 問題なく svn コマンドが使用できる様になった。
$ /usr/local/bin/svn --version
svn, version 1.5.1 (r32289)
   compiled Aug  6 2008, 13:59:27

Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme

$
それにしても、最近 MacPorts でエラーばかり起きる。 調子が悪いのだろうか・・・。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 13, 2008

[Apple] MacPorts のアップデートに失敗する

Mac OS X 10.4 で久しぶりに MacPorts のアップデートを行ったところ、"error: Broken X11 install. No X11 headers" というエラーが発生した。 X11SDK はインストール済みなので、"No X11 headers" ということは無いはずなのだけれど。 X11SDk を再インストールして再挑戦することに。

$ sudo port selfupdate
Password:
MacPorts base version 1.520 installed
Downloaded MacPorts base version 1.600
Configuring, Building and Installing new MacPorts base
Error: /opt/local/bin/port: selfupdate failed: Error installing new MacPorts base: shell command "cd /opt/local/var/macports/sources/rsync.macports.org/release/base && ./configure --prefix=/opt/local --with-install-user=root --with-install-group=admin --with-tclpackage=/Library/Tcl && make && make install" returned error 1
Command output: checking for working vfork... (cached) yes
checking whether strerror_r is declared... yes
checking for strerror_r... yes
checking whether strerror_r returns char *... no
checking for bzero... yes
  (略)
checking for openssl/md5.h... yes
checking for X... no
checking for XOpenDisplay in -lX11... yes
Please install the X11 SDK packages from the
Xcode Developer Tools CD
configure: error: Broken X11 install. No X11 headers
$
"Mac OS X Instal Disc 1" から X11SDK を再インストールしたところ、
[X11SDKインストールに失敗]
というエラーでインストールできない。 X11SDK が既にインストールされているのが原因の様だ。
$ rm /Library/Receipts/X11SDK.pkg
X11SDK をインストーラが検知できない様に上記の通り pkg ファイルを削除して再度実行したところ正常にインストールが終了した。 続いて MacPorts のアップデートに再挑戦。
$ sudo port selfupdate
Password:
MacPorts base version 1.520 installed
Downloaded MacPorts base version 1.600
Configuring, Building and Installing new MacPorts base
selfupdate done!
$ sudo port version
Version: 1.600
今度は上手くいった。やれやれ。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 12, 2008

[Apple] フォルダアクションで docbook を PDF に変換する

Mac OS X 上に Docbook 環境を構築してみた。 やりたいのは、フォルダアクションで docbook を PDF 化すること。

docbook 環境のインストール

まずは MacPorts を使用して docbook 関連のライブラリと Apache FOP をインストールする。

$ sudo port install docbook-xml docbook-xsl libxslt fop
Password:
--->  Fetching xmlcatmgr
  (略)
--->  Installing xmlcatmgr 2.2_1
--->  Activating xmlcatmgr 2.2_1
--->  Cleaning xmlcatmgr
--->  Fetching docbook-xml-4.1.2
  (略)
--->  Installing docbook-xml-4.1.2 4.1.2_1
--->  Activating docbook-xml-4.1.2 4.1.2_1
--->  Cleaning docbook-xml-4.1.2
  (略)
--->  Installing docbook-xml-4.2 4.2_0
--->  Activating docbook-xml-4.2 4.2_0
--->  Cleaning docbook-xml-4.2
--->  Fetching docbook-xml-4.3
  (略)
--->  Installing docbook-xml-4.3 4.3_0
--->  Activating docbook-xml-4.3 4.3_0
--->  Cleaning docbook-xml-4.3
--->  Fetching docbook-xml-4.4
  (略)
--->  Installing docbook-xml-4.4 4.4_0
--->  Activating docbook-xml-4.4 4.4_0
--->  Cleaning docbook-xml-4.4
--->  Fetching docbook-xml-4.5
  (略)
--->  Installing docbook-xml-4.5 4.5_0
--->  Activating docbook-xml-4.5 4.5_0
--->  Cleaning docbook-xml-4.5
--->  Fetching docbook-xml
  (略)
--->  Installing docbook-xml 4.5_1
--->  Activating docbook-xml 4.5_1
--->  Cleaning docbook-xml
--->  Fetching docbook-xsl
  (略)
--->  Installing docbook-xsl 1.72.0_0
--->  Activating docbook-xsl 1.72.0_0
--->  Cleaning docbook-xsl
--->  Fetching libxslt
  (略)
--->  Installing libxslt 1.1.22_0
--->  Activating libxslt 1.1.22_0
--->  Cleaning libxslt
--->  Fetching fop
  (略)
--->  Installing fop 0.94_0
--->  Activating fop 0.94_0
--->  Cleaning fop
$

シングルバイトの docbook ファイルを PDF 化してみる

PDF の Font 周りは面倒なので、とりあえずはシングルバイト文字のみで PDF 化を試してみる。 用意したデータはこんな感じ。

<?xml version="1.0" encoding="UTF-8"?>

<book id="my_test_book">
  <title>my test book</title>
  <chapter id="chapter1">
    <title>Chapter 1</title>
    <para>Hello docbook!</para>
  </chapter>
  <chapter id="chapter2">
    <title>Chapter 2</title>
    <para>This is single byte docbook document.</para>
  </chapter>
</book>
docbook xml → (XSLT) → FO → (Apache FOP) → PDF という様に docbook を PDF に変換する。
$ /opt/local/bin/xsltproc -o ./test.fo /opt/local/share/xsl/docbook-xsl/fo/docbook.xsl ./test.xml
Making portrait pages on USletter paper (8.5inx11in)
$ fop -fo ./test.fo -pdf ./test.pdf
2008/09/10 11:45:21 org.apache.fop.hyphenation.Hyphenator getHyphenationTree
致命的: Couldn't find hyphenation pattern en
$ 
何事もなく PDF が生成された。
[PDF 化されたシングルバイト docbook]

マルチバイトの docbook ファイルを PDF 化してみる

次に本命のマルチバイト docbook ファイルの変換に挑戦してみる。 FOP のフォント設定は以下のサイトを参考にさせていただいた。感謝。

Apache FOP: Fonts
http://xmlgraphics.apache.org/fop/0.95/fonts.html#basics
DocBook メモ
http://cueplot.sourceforge.jp/wiki/index.php?DocBook%20%E3%83%A1%E3%83%A2
用意したデータはこんな感じ。
<?xml version="1.0" encoding="UTF-8"?>

<book id="my_test_book_ja">
  <title>テストブック</title>
  <chapter id="chapter1">
    <title>第一章</title>
    <para>やぁ! Docbook</para>
  </chapter>
  <chapter id="chapter2">
    <title>第二章</title>
    <para>日本語は上手く表示できるかな?</para>
  </chapter>
</book>
当然駄目だと分かっているが、とりあえずそのまま PDF 化してみる。 手順はシングルバイトのときと全く同様。
結果は
[やはり駄目]

やはり Font を設定しなければ化けることが分かったので、仕方なく Font を設定する。 手順は上記のサイトに記載がある通り。

$ cd /opt/local/share/java/fop/0.94/
$ java -cp ./build/fop.jar:./lib/commons-logging-1.0.4.jar:./lib/commons-io-1.3.1.jar org.apache.fop.fonts.apps.TTFReader -d -fn "HiraginoMinchoProW3" "/System/Library/Fonts/\343\203\222\343\203\251\343\202\255\343\202\231\343\203\216\346\230\216\346\234\235 Pro W3.otf" ./hiraginominchoprow3.xml
TTF Reader for Apache FOP 0.94

Parsing font...
Reading /System/Library/Fonts/?q???L??m???? Pro W3.otf...
sfnt version: OpenType with CFF data
  (略)
Font Family: Hiragino Mincho Pro
Error while building XML font metrics file.
java.lang.UnsupportedOperationException: OpenType fonts with CFF data are not supported, yet
        at org.apache.fop.fonts.apps.TTFReader.loadTTF(TTFReader.java:214)
        at org.apache.fop.fonts.apps.TTFReader.main(TTFReader.java:163)
・・・ ヒラギノは現時点の Apache FOP では扱えないらしい。 では、ということで、MS 明朝を試してみた。
$ java -cp ./build/fop.jar:./lib/commons-logging-1.0.4.jar:./lib/commons-io-1.3.1.jar org.apache.fop.fonts.apps.TTFReader -d -fn "MSMINCHO" "./fonts/MSMINCHO.TTF" ./fonts/msmincho.xml
TTF Reader for Apache FOP 0.94

Parsing font...
Reading /fonts/MSMINCHO.TTF...
sfnt version: OpenType 1.0
  (略)
Font Family: MS Mincho
Creating xml font file...
Creating CID encoded metrics...
Writing xml font file /fonts/msmincho.xml...
This font contains no embedding license restrictions.

XML font metrics file successfully created.
$ 
MS 明朝は正常に読み込むことができた。
後は FOP の設定ファイル fop.xconf を作成するだけ。
<?xml version="1.0"?>
<fop version="1.0">
 <renderers>
   <renderer mime="application/pdf">
     <fonts>
       <font metrics-url="/fonts/msmincho.xml" kerning="yes" embed-url="/fonts/MSMINCHO.ttf">
         <font-triplet name="MSMINCHO" style="normal" weight="100"/>
         <font-triplet name="MSMINCHO" style="normal" weight="200"/>
         <font-triplet name="MSMINCHO" style="normal" weight="300"/>
         <font-triplet name="MSMINCHO" style="normal" weight="400"/>
         <font-triplet name="MSMINCHO" style="normal" weight="500"/>
         <font-triplet name="MSMINCHO" style="normal" weight="600"/>
         <font-triplet name="MSMINCHO" style="normal" weight="700"/>
         <font-triplet name="MSMINCHO" style="normal" weight="800"/>
         <font-triplet name="MSMINCHO" style="normal" weight="900"/>
       </font>
     </fonts>
   </renderer>
 </renderers>
</fop>

ではマルチバイト docbook の PDF 化に再挑戦。 今回は MS 明朝を使用するので、docbook から FO を作成した後で FO 内の Font 設定を変更する処理を入れる。 docbook → (XSLT) → fo → (sed) → fo → (FOP) → PDF という感じになる。 また、Apache FOP 実行時に上で作成した設定ファイルを指定する必要がある。

$ /opt/local/bin/xsltproc -o ./test_ja.fo /opt/local/share/xsl/docbook-xsl/fo/docbook.xsl ./test_ja.xml
Making portrait pages on USletter paper (8.5inx11in)
$ sed -e "s/font-family=\"/font-family=\"MSMINCHO,/g" ./test_ja.fo > ./test_ja_2.fo
$ fop -fo ./test_ja_2.fo -pdf ./test_ja_2.pdf -c ./fop.xconf 
2008/09/10 13:14:28 org.apache.fop.hyphenation.Hyphenator getHyphenationTree
?v???I: Couldn't find hyphenation pattern en
$ 
マルチバイト docbook の PDF 化に成功!!
[日本語も表示できた!!]

AppleScript で docbook → PDF の変換を行う

docbook の PDF 化に成功したところで、念願の AppleScript での変換を行う。 まずはシェルスクリプトを用意。

#!/bin/sh

DOCBOOK_XML=$1
DOCBOOK_PDF=$2

XSLTPROC=/opt/local/bin/xsltproc
DOCBOOK_XSLT=/opt/local/share/xsl/docbook-xsl/fo/docbook.xsl
FOP=/opt/local/bin/fop
FOP_CONFIG=/fonts/fop.xconf
WORKDIR=`pwd`
WORK_FO=$WORKDIR/tmp.fo
WORK_FO_CONVERTED=$WORKDIR/tmp_converted.fo

echo "Converting docbook -> PDF : $DOCBOOK_XML -> $DOCBOOK_PDF"

if [ ! -f "$DOCBOOK_XML" ];
  then
    echo "No docbook file found. : $DOCBOOK_XML"
    exit;
fi

rm "$WORK_FO" 2> /dev/null
rm "$WORK_FO_CONVERTED" 2> /dev/null

$XSLTPROC -o "$WORK_FO" "$DOCBOOK_XSLT" "$DOCBOOK_XML"
sed -e "s/font-family=\"/font-family=\"MSMINCHO,/g" "$WORK_FO" > "$WORK_FO_CONVERTED"
$FOP -fo "$WORK_FO_CONVERTED" -pdf "$DOCBOOK_PDF" -c "$FOP_CONFIG"

rm "$WORK_FO" 2> /dev/null
rm "$WORK_FO_CONVERTED" 2> /dev/null
次にこのシェルスクリプトを呼び出す AppleScript を用意する。 この AppleScript は "/Library/Scripts/Folder Action Scripts/Image - Duplicate as JPEG.scpt" を参考にさせていただいた(「参考に」と言うより、ほぼそのまま)。
property doneFoldername : "PDF"
property originalsFoldername : "Docbook"
property pdfExtension : "pdf"
property typeList : {"XML"}
property extensionList : {"xml"}

on adding folder items to thisFolder after receiving theseItems
  tell application "Finder"
    if not (exists folder doneFoldername of thisFolder) then
      make new folder at thisFolder with properties {name:doneFoldername}
    end if
    set the resultsFolder to (folder doneFoldername of thisFolder) as alias
    if not (exists folder originalsFoldername of thisFolder) then
      make new folder at thisFolder with properties {name:originalsFoldername}
      set current view of container window of thisFolder to list view
    end if
    set the originalsFolder to folder originalsFoldername of thisFolder
  end tell
  try
    repeat with i from 1 to number of items in theseItems
      set thisItem to item i of theseItems
      set the itemInfo to the info for thisItem
      if (alias of the itemInfo is false and the file type of the itemInfo is in the typeList) or (the name extension of the itemInfo is in the extensionList) then
        tell application "Finder"
          my resolveConflicts(thisItem, originalsFolder, "")
          set the newName to my resolveConflicts(thisItem, resultsFolder, pdfExtension)
          set the SourceFile to (move thisItem to the originalsFolder with replacing) as alias
        end tell
        processItem(SourceFile, newName, resultsFolder)
      end if
    end repeat
  on error errorMessage number errorNumber
    if the errorNumber is not -128 then
      tell application "Finder"
        activate
        display dialog errorMessage buttons {"Cancel"} default button 1 giving up after 120
      end tell
    end if
  end try
end adding folder items to

on resolveConflicts(thisItem, targetFolder, newExtension)
  tell application "Finder"
    set the fileName to the name of thisItem
    set fileExtension to the name extension of thisItem
    if the fileExtension is "" then
      set the trimmedName to the fileName
    else
      set the trimmedName to text 1 thru -((length of fileExtension) + 2) of the fileName
    end if
    if the newExtension is "" then
      set targetName to fileName
      set targetExtension to fileExtension
    else
      set targetExtension to newExtension
      set targetName to (the trimmedName & "." & targetExtension) as string
    end if
    if (exists document file targetName of targetFolder) then
      set the nameIncrement to 1
      repeat
        set the newName to (the trimmedName & "." & (nameIncrement as string) & "." & targetExtension) as string
        if not (exists document file newName of the targetFolder) then
          set the name of document file targetName of the targetFolder to the newName
          exit repeat
        else
          set the nameIncrement to the nameIncrement + 1
        end if
      end repeat
    end if
  end tell
  return the targetName
end resolveConflicts

on processItem(SourceFile, newName, resultsFolder)
  try
    set the targetPath to ((resultsFolder as string) & newName) as string
    with timeout of 900 seconds
      do shell script "/Scripts/convert-docbook.sh ¥"" & POSIX path of SourceFile & "¥" ¥"" & POSIX path of targetPath & "¥""
    end timeout
  on error errorMessage
    tell application "Finder"
      activate
      display dialog errorMessage buttons {"Cancel"} default button 1 giving up after 120
    end tell
  end try
end processItem
この AppleScript をフォルダに関連付けて今回の作業は終了。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 08, 2008

[Apple] AppleScript から rsync を実行

rsync にはいつもお世話になっている。 コマンドラインで叩いてもさほど面倒というわけでもないのだけれど、ブログの更新の様に何度も繰り返して行う作業は自動化しておきたい。 今まではシェルスクリプトを利用していたのだけれど、何となく AppleScript 化してみた。

rsync.expect

rsync に AppleScript からパスワードを渡すために expect を使用する。 少々面倒だけれど、とりあえず expect で 汎用的な rsync 制御用の関数を用意しておく。 何かで使い回せるかもしれないし。 ・・・といって使い回した試しはないが。

#!/usr/bin/expect
proc Rsync {RsyncServer RsyncPort RemoteUser RemotePassword RemoteDirectory LocalDirectory} {
  set timeout 10;
  spawn rsync -av --port=$RsyncPort $LocalDirectory $RemoteUser@$RsyncServer:$RemoteDirectory
  expect {
   password: {send "$RemotePassword¥r";}
   timeout {puts stderr "rsync timeout."; return 1;}
  }
  expect {
    sent {return 0;}
    Permission {puts stderr "login failed."; return 2;}
  }
  return 0
}

set ARG0 [lindex $argv 0]
set ARG1 [lindex $argv 1]
set ARG2 [lindex $argv 2]
set ARG3 [lindex $argv 3]
set ARG4 [lindex $argv 4]
set ARG5 [lindex $argv 5]

set Result [Rsync $ARG0 $ARG1 $ARG2 $ARG3 $ARG4 $ARG5]
exit $Result

bloguploader.scpt

次に、rsync.expect を呼び出す AppleScript を作成する。 Password はスクリプト内には埋め込みたくないので、ダイアログで入力するようにしておいた。 このスクリプトはこのまま Automator で使用しても OK。

display dialog "Enter password: " default answer ""
set RsyncPassword to text returned of result

do shell script "/usr/bin/expect -f /Users/me/Documents/rsync.expect www.example.com 873 me " & RsyncPassword & " /home/me/blog /Users/me/Documents/Blog/"

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jul 16, 2008

[Apple] Mac OS X で DNS キャッシュのクリア

/private/etc/hosts の変更内容がすぐに反映されない で Tiger での DNS キャッシュのクリア方法をメモしたが、Leopard ではコマンドが変更となったので追記。

Leopard(10.5)
$ dscacheutil -flushcache
Tiger(10.4)
$ sudo lookupd -flushcache

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 30, 2008

[Apple] GnuPG on Mac OS X メモ

Mac OS X に GnuGP を入れてみた。 MacPorts を使ってインストール出来るので至極簡単。

GnuPG のインストール

$ sudo port search gnupg
qca-gnupg                      devel/qca-gnupg 2.0.0-beta2  Qt Cryptographic Architecture - openssl plugin
gnupg                          mail/gnupg     1.4.7        GNU pretty-good-privacy package
gnupg12                        mail/gnupg12   1.2.7        GNU Privacy Guard
gnupg2                         mail/gnupg2    2.0.8        GNU pretty-good-privacy package
p5-gnupg-interface             perl/p5-gnupg-interface 0.33         Perl interface to GnuPG
py-gnupg                       python/py-gnupg 0.3.2        GnuPGInterface is a Python module to interface with GnuPG
py25-gnupg                     python/py25-gnupg 0.3.2        GnuPGInterface is a Python module to interface with GnuPG
$
$ sudo port install gnupg
--->  Fetching ncursesw
--->  Attempting to fetch ncurses-5.6.tar.gz from http://ftp.gnu.org/gnu/ncurses
--->  Verifying checksum(s) for ncursesw
--->  Extracting ncursesw
--->  Applying patches to ncursesw
--->  Configuring ncursesw

  (SNIP)

--->  Staging gnupg into destroot
--->  Installing gnupg 1.4.7_0
--->  Activating gnupg 1.4.7_0
--->  Cleaning gnupg
$

GnuPG の動作確認

$ gpg --version
gpg (GnuPG) 1.4.7
Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
$

GnuPG を使って復号化

$ gpg -d ./dummy.gpg > ./dummy
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
$

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jun 23, 2008

[Apple] Cyberduck メモ

[Cyberduck]

Cyberduck は Mac OS X で動作する FTP, SFTP クライアント。SSH の公開鍵認証に対応している。 今までは Fugu を使用していたのだけれど、 残念なことに Fugu は公開鍵認証ができない。 公開鍵認証が必要になったので、今回 Fugu から Cyberduck に乗り換えてみた。

Cyberduck is an open source FTP, SFTP, WebDAV and Amazon S3 browser licenced under the GPL with an easy to use interface, integration with external editors and support for many Mac OS X system technologies such as Spotlight, Bonjour, QuickLook and the Keychain.
Cyberduck
http://cyberduck.ch/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Dec 04, 2007

[Apple] /private/etc/hosts の変更内容がすぐに反映されない

Mac OS X で /private/etc/hosts を変更しても、変更内容がすぐに反映されないことがある。 調べてみたら

osxでetchostsをすぐに反映させる方法
http://ido.nu/kuma/2007/03/23/osxでetchostsをすぐに反映させる方法/
に情報があった。
$ sudo lookupd -flushcache
でキャッシュをクリアすれば良いらしい。実際に試してみたところ上手く行った。感謝。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 14, 2007

[Apple] Mac OS X(Tiger) で Apache を停止する方法

Mac OS X (Tiger) で Apache HTTP Server が起動していることを知った。 で、Apache HTTP Server の停止方法をメモ。

Apache HTTP Server の停止方法

システム環境設定 -> 共有 -> パーソナル Web 共有で停止できる。システム環境設定で試しに「apache」を検索してみたらシステムが教えてくれた。素晴らしい。
[Apache on Mac OS X] [Apache on Mac OS X]

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 07, 2007

[Apple] ClamXav メモ

ClamXav は Mac OS X で動作するフリーのアンチウィルスソフト。 2007/11/07 時点で Leopard で動作するバイナリは公開されていない模様。

ClamXav is a free virus checker for Mac OS X. It uses the tried, tested and very popular ClamAV open source antivirus engine as a back end.
ClamXav
http://www.clamxav.com/

ClamXav のインストール

ClamXav は ClamAV というアンチウィルスソフトをベースにしているので、ClamAV を同時にインストールする。 現在の ClamXav のインストーラは ClamAV もしてくれる様だが、何故か手元の環境ではうまく動かなかった。 権限関連の問題だと思うが、原因を調べるのが面倒だったので ClamAV は MacPorts を使ってインストールした。

というわけで、ClamXav のインストール手順は

  1. MacPorts で ClamAV をインストール
  2. ClamXav をインストール
  3. ClamXav を設定
という感じ。

ClamAV のインストール

$ sudo port -d sync
Password:
DEBUG: Synchronizing ports tree(s)
Synchronizing from rsync://rsync.macports.org/release/ports/
  :
sent 107556 bytes  received 2316556 bytes  68284.85 bytes/sec
total size is 15752431  speedup is 6.50
$ sudo port -d selfupdate
DEBUG: Rebuilding the MacPorts base system if needed.
DEBUG: Synchronizing ports tree(s)
  :
The MacPorts installation is not outdated and so was not updated
DEBUG: Setting ownership to root
selfupdate done!
$ sudo port install clamav
--->  Fetching gmp
--->  Attempting to fetch gmp-4.2.1.tar.bz2 from http://ftp.gnu.org/gnu/gmp
  :
--->  Installing clamav 0.91.2_0

You need to add a new clamav user and clamav group to your system if you want to use clamav in superuser mode.

--->  Activating clamav 0.91.2_0
--->  Cleaning clamav
$ 
インストールが完了したら、ClamXav から呼び出せるように権限を変更しておく。
$ sudo touch /opt/local/share/clamav/freshclam.log
$ sudo chmod 664 /opt/local/share/clamav/freshclam.log
$ sudo chown -R clamav:clamav /opt/local/share/clamav/
$ sudo chmod u+s /opt/local/bin/freshclam 

ClamXav のインストール

ClamXav の公式サイトから dmg をダウンロードする。dmg をマウント後、以下の通りファイルを移動する。 ここでは ClamXav_1.0.8_Tiger_e912.dmg を使用した。

  • ClamXav.app → /Applications
  • ScanWithClamXav.plugin → /Library/Contextual Menu Items

ClamXav の設定

ClamXav の設定は素晴らしい解説を発見したので参考にさせていただいた。 .Mac Tips さんに多謝!!

ClamAV と ClamXav: 第一回 ClamXav の環境設定
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20060429010224/index.html
ClamAV と ClamXav: 第二回 ClamAV による定期スキャンと更新
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20060502200534/index.html
ClamAV と ClamXav: 第三回 ウィルス定義ファイルの自動更新
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20060508141731/index.html
ClamAV と ClamXav: 第四回 ClamXav 1.0.3 の新設定
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20060512153400/index.html
ClamAV と ClamXav: 第五回 ClamAV のパーミッションを補強する
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20060517015523/index.html
ClamAV と ClamXav: 第六回 他の対策ソフトの共同作業
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20061123181450/index.html
ClamAV と ClamXav: 第七回 ClamAV 0.90 の設定ファイルの変更点まとめ
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20070214182533/index.html
ClamAV と ClamXav: 第八回 clamav-update プロジェクト
http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1181169702/E20070729134015/index.html

ClamXav の実行

[ClamXav]
ClamXav を起動して、定義ファイルの更新をした。

[ClamXav]

とりあえず小さいディレクトリを検索してみた。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 06, 2007

[Apple] Prism メモ

[prism] [prism gmail]

Prism は Web アプリケーションの実行に特化した Thin Client。 シンプルな Web ブラウザといったところか。 とりあえず頻繁に利用する Gmail を Prism から利用するようにしてみた。 アイコンは Google Notifier のものを流用させていただいた。

Prism is a simple XULRunner based browser that hosts web applications without the normal web browser user interface.
mozilla wiki - Prism
http://wiki.mozilla.org/Prism
mozilla wiki - Prism Installs
http://wiki.mozilla.org/Prism#Installs

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Nov 05, 2007

[Apple] Transmission メモ

[transmission]


Transmission は Mac OS X にも対応した BitTorrent クライアント。

Transmission is a fast, easy, and free multi-platform BitTorrent client with a focus on being lightweight yet feature-filled.
Transmission
http://transmission.m0k.org/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 16, 2007

[Apple] Pathway メモ

[Pathway]

Pathway は Wikipedia ビューア。 Wikipedia の関連付けられたエントリからエントリへ渡り歩きながら必要な知識を得ることができる。 これは便利。

Pathway is an app designed to solve the aforementioned problems. Its aim is to help you discover Wikipedia without having to worry whether you’ll have enough time to read everything you want, or if you’ll get lost.

It accomplishes this by presenting you with a graphical “network” representation of your visited article pages. A node represents an article, a connection between two nodes means, of course, that you’ve gone from the first article to the second one. You can save the network you’ve created to disk and recover it.
Pathway
http://pathway.screenager.be/
About Pathway
http://pathway.screenager.be/about-pathway/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 14, 2007

[Apple] Shrook メモ

[Shrook]

Shrook は Mac OS X 用の RSS Reader。 しばらく Vienna を使用していたのだが、唐突に Feed の読み込みをしてくれなくなった。 どうも過去のエントリデータが破損した模様。 機能的には満足していたのだが、どうも動作がもっさりしていたこともあり Shrook を試してみることにした。 さて、データ量が増えてきたときにどうなることやら・・・。

Shrook
http://www.utsire.com/shrook/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 10, 2007

[Apple] ImageMagick を Mac OS X にインストール

ImageMagick を Mac OS X にインストールした際のメモ。 メモと言っても、MacPorts を使っているので大したことはやっていない。

ImageMagick: Convert, Edit, and Compose Images
http://www.imagemagick.org/

MacPorts を使って ImageMagick をインストール

$ sudo port install ImageMagick

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

[Apple] ImageMagick を Mac OS X にインストール

ImageMagick を Mac OS X にインストールした際のメモ。 メモと言っても、MacPorts を使っているので大したことはやっていない。

ImageMagick: Convert, Edit, and Compose Images
http://www.imagemagick.org/

MacPorts を使って ImageMagick をインストール

$ sudo port install ImageMagick

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Oct 09, 2007

[Apple] MacPorts を Mac OS X にインストール

MacPorts を Mac OS X にインストールした際のメモ。

MacPorts
http://www.macports.org/

MacPorts のインストール

  1. MacPorts のサイトから dmg ファイルを拾ってくる。
  2. dmg をマウントし、インストーラを実行。後はウィザードの指示通り。
  3. /Users/me/.bashrc を編集。以下を追加する。
    export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
    export MANPATH=/opt/local/man:$MANPATH
    
  4. MacPorts の初期設定。
    $ sudo port -d selfupdate
    $ sudo port -d sync
    

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 27, 2007

[Apple] Growl メモ

[Growl notifier]

Growl
http://growl.info/
growliChat
http://growlichat.com/
Gmail + Growl for Google Notifier
http://wafflesoftware.net/gmailgrowl/
NETAFULL - アプリケーションのイベントを通知してくれる「Growl」
http://netafull.net/macsoft/020136.html
ステキMac使いを目指す日記 - Growlを使ってMac OS Xの様々なイベントを通知する
http://d.hatena.ne.jp/mteramoto/20070404/p1

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 18, 2007

[Apple] POPFile を Mac OS X にインストール

何故か MTA に SPAM FILTER が導入されていない我が社。 Apple Mail にも SPAM FILTER があるが、いまいち精度が悪い。 というわけで、メール振り分けソフトの POPFile を Mac OS X にインストールしてみた。

POPFile - Automatic Email Classification
http://sourceforge.net/projects/popfile/
POPFile Documentation Project
http://popfile.sourceforge.net/wiki/jp
POPFile(自動メールフィルター)の日本語化
http://sourceforge.jp/projects/popfile/files/

POPFile のインストール

POPFile のインストールはインストーラにお任せで OK。 但し、ポートの 8080 を使用する(後で変更可能)ので、Apache Tomcat などがポート 8080 を使用している場合は予め終了しておいた方が良い。

  1. 日本語化プロジェクトのダウンロードサイトから POPFile-0.22.5ub.dmg をダウンロード
  2. POPFile-0.22.5ub.dmg をマウントし、インストーラ実行
  3. ウィザードの指示に従ってインストールを完了

POPFile の設定

POPFile は内部に Web インタフェースを持っており、設定はその Web インタフェースを使用する(以降、POPFile コントロールセンターと記述)。 Web ブラウザで http://localhost:8080/ にアクセスする。

日本語表示設定

POPFile コントロールセンターの日本語化
Configuration -> User Interface -> Choose language -> "Nihongo"
※"Japanese" ではなく "Nihongo" なので注意。いいね。

環境設定

設定 -> ポート番号 -> ユーザーインターフェース用ポート番号
※ポート 8080 を他のソフトで使用する場合はポート番号を変更する。
POPFile コントロールセンターのパスワード
セキュリティ -> ユーザーインターフェースパスワード
※指定しない(デフォルト)場合は、パスワード入力なしで POPFile コントロールセンターが使用できる。

バケツ設定

バケツは、メールの振り分け先となる場所。 SPAM FILTERING を行うのであれば、"spam" と "notspam" の 2 つがあればいい。 より詳細な振り分けを行うのであれば、適宜必要な分だけバケツを作成する。 バケツ名には 半角"小文字"アルファベットとハイフン、アンダースコアしか使用できないので注意。

バケツの作成
バケツ -> 管理 -> バケツ作成
※"spam", "work" の 2 つのバケツを作成した。

マグネット設定

FILTERING の前に、特定の条件にヒットしたメールを強制的に指定のバケツに振り分けることができる。 この条件をマグネットと言うらしい。

マグネットの作成
マグネット -> 新規マグネット作成
※マグネットタイプ: 差出人、値: @example.com、分類先のバケツ: work というマグネットを作成した。

Apple Mail 設定

http://popfile.sourceforge.net/wiki/jp:howtos:mail に従って Apple Mail を設定した。

POPFile の起動・終了・リブート

起動
$ sudo /Library/StartupItems/POPFile/POPFile start
Password:
Starting POPfile POP mail proxy
$
終了
$ sudo /Library/StartupItems/POPFile/POPFile start
Password:
Stopping POPfile POP mail proxy
$
リブート(動作しなかった)
$ sudo /Library/StartupItems/POPFile/POPFile restart
Restarting POPfile POP mail proxy
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec]
$

FILTER の学習

メール受信時に subject ヘッダに付加される Prefix を見て適宜 FILTER に振り分けの指示を出す。 "[unclassified]" という Prefix が付いているメールが来たら POPFile コントロールセンターで振り分け先のバケツを指定するだけ。 後は、振り分け先バケツが間違っていたら修正したりする。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Sep 10, 2007

[Apple] QuickSilver メモ

[QuickSilver]

QuickSilver に関するメモ。

QuickSilver
http://quicksilver.blacktree.com/
コマンドランチャーだけではもったいない強力フリーウェア - QuickSilver
http://journal.mycom.co.jp/column/lifehack/024/
Blue Dot - ange on QuickSilver
http://bluedot.us/users/ange/tag/queue
43 Folders
http://www.43folders.com/category/quicksilver/

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 29, 2007

[Apple] Mac OS X 起動時のソフトウェア自動起動方法メモ

Mac OS X 起動時にソフトウェアを自動起動したい。 というわけで、関連リンクをメモ。

SystemStarterで、OS起動時にアプリも起動
http://www.0-i-0.com/tips/38-startup/startup.html
SystemStarter memo
http://www.eternal.nest.or.jp/shiro/macosx/systemstarter.html
Windows も 2000 以降はなかなか使い易くなったけれど、 やはり UNIX ベースの OS の方が馴染みやすいな。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 24, 2007

[Apple] Dashboard Widget をデスクトップ上におく

padmacolors.org さんDashboard Widget をデスクトップ上におくというエントリを読んで、Dashboard Widget をデスクトップ上におけることを知った。 便利そうなので早速試してみた。

padmacolors.org さんのエントリにある通り、

$ defaults write com.apple.Dashboard devmode YES
を実行するだけで準備完了。

Dashboard Widget をデスクトップ上においてみる。

とりあえず電卓をデスクトップ上においてみた。 やり方は簡単。 下記は Dashboard のショートカットキーが "F12" になっている前提。

  1. "F12" を押して Dashboard を表示する。
  2. 電卓をドラッグする(ドラッグしたまま)。
  3. 電卓をドラッグしたまま "F12" を再度押して Dashboard を抜ける。
  4. 電卓がデスクトップ上に出てくる。
[Calcurator on Desktop]

Dashboard Widget を Dashboard に戻す。

ではデスクトップ上に出てきた電卓を Dashboard に戻してみようと思う。 やり方はデスクトップに出したときと同じ。

  1. 電卓をドラッグする(ドラッグしたまま)。
  2. 電卓をドラッグしたまま "F12" を押して Dashboard を表示する。
  3. 電卓が Dashboard 上に戻る。

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Aug 20, 2007

[Apple] Fink にチャレンジ

Fink とは

Fink は

Fink プロジェクトは オープンソースソフトウェアを Darwin と Mac OS X で使えるようにするものです。 Mac OS X 上でコンパイルと実行できるよう、 Unix ソフトウェアを修正 ("ポート") しています。 こうしてできたものは全て一つのディストリビューションに統合されます。 Fink では dpkg や apt-get などの Debian ツールを使い、バイナリパッケージ管理を行っています。 ユーザーはコンパイル済みのパッケージをダウンロードことも、すべてソースからビルドすることもできます。
というものらしい。 普段 Debian 系に慣れ親しんでいる関係で、apt が Mac OS X でも使用できたら便利だろうと思っていたので早速インストールしてみた。

Fink
http://finkproject.org/index.php

Fink のインストール

  1. ダウンロードページから Fink 0.8.1 バイナリインストーラ (Intel) をダウンロード。
  2. ダウンロードした Fink-0.8.1-Intel-Installer.dmg をマウント。
  3. Fink-0.8.1-Intel-Installer.pkg を実行。
  4. インストーラの指示に従ってインストールを行う。
  5. apt インデックスを作成する。
    $ fink scanpackages
    Information about 1723 packages read in 2 seconds.
    dpkg-scanpackages dists/local/main/binary-darwin-i386 override | gzip >dists/local/main/binary-darwin-i386/Packages.gz
     Wrote 0 entries to output Packages file.
    dpkg-scanpackages dists/stable/main/binary-darwin-i386 override | gzip >dists/stable/main/binary-darwin-i386/Packages.gz
     Wrote 0 entries to output Packages file.
    dpkg-scanpackages dists/stable/crypto/binary-darwin-i386 override | gzip >dists/stable/crypto/binary-darwin-i386/Packages.gz
     Wrote 0 entries to output Packages file.
    $ fink index
    Reading package info...
    Updating package index... done.
    $
    
  6. fink を最新バージョンにアップデート。
    $ sudo apt-get update
    Hit http://bindist.finkmirrors.net 10.4/release/main Packages
    Hit http://bindist.finkmirrors.net 10.4/release/main Release
    Hit http://bindist.finkmirrors.net 10.4/release/crypto Packages
    Hit http://bindist.finkmirrors.net 10.4/release/crypto Release
    Get:1 http://bindist.finkmirrors.net 10.4/current/main Packages [9745B]
    Hit http://bindist.finkmirrors.net 10.4/current/main Release                   
    Get:2 http://bindist.finkmirrors.net 10.4/current/crypto Packages [20B]        
    Hit http://bindist.finkmirrors.net 10.4/current/crypto Release                 
    Fetched 9765B in 6s (1461B/s)                                                  
    Reading Package Lists... Done
    Building Dependency Tree... Done
    $ sudo apt-get install fink
    Reading Package Lists... Done
    Building Dependency Tree... Done
    1 packages upgraded, 0 newly installed, 0 to remove and 13  not upgraded.
    Need to get 856kB of archives. After unpacking 4096B will be used.
    Get:1 http://bindist.finkmirrors.net 10.4/current/main fink 0.24.23-31 [856kB]
    Fetched 856kB in 5s (151kB/s)
    (Reading database ... 4131 files and directories currently installed.)
    Preparing to replace fink 0.24.17-31 (using .../fink_0.24.23-31_darwin-i386.deb) ...
    Unpacking replacement fink ...
    Setting up fink (0.24.23-31) ...
    Checking system... i386-apple-darwin8.10.1
    This system was not released at the time this Fink release was made. 
    Prerelease versions of Mac OS X might work with Fink, but there are no
    guarantees.
    Using the new 10.4 tree...
    ln -s 10.4 /sw/fink/dists
    Reading package info...
    Updating package index... done.
    
    $
    

試しに XEmacs をインストール

$ sudo apt-get clean
$ sudo apt-cache search xemacs
cssed - CSS editor
cssed-dev - CSS editor
flim - Library to provide basic features about message for Emacsen
jove - Small, fast, portable Emacs clone
mew - MIME mail reader for Emacs/XEmacs
mew-bin - MIME mail reader for Emacs/XEmacs
wl - Yet Another Message Interface on Emacsen
xemacs - Highly customizable text editor
xemacs-base-pkg - Basic files needed for xemacs package installation
xemacs-efs-pkg - Allows xemacs to fetch files from the FTP site or mirrors
xemacs-sumo-pkg - All xemacs packages together
$ sudo apt-get install xemacs
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  gdbm3-shlibs libjpeg-shlibs libpng3-shlibs libtiff-shlibs xaw3d-shlibs
  xemacs-base-pkg xemacs-efs-pkg xfree86 xfree86-shlibs 
The following NEW packages will be installed:
  gdbm3-shlibs libjpeg-shlibs libpng3-shlibs libtiff-shlibs xaw3d-shlibs
  xemacs xemacs-base-pkg xemacs-efs-pkg xfree86 xfree86-shlibs 
0 packages upgraded, 10 newly installed, 0 to remove and 13  not upgraded.
Need to get 61.4MB of archives. After unpacking 39.1MB will be used.
Do you want to continue? [Y/n] Y
Get:1 http://bindist.finkmirrors.net 10.4/release/main libjpeg-shlibs 6b-16 [73.8kB]
Get:2 http://bindist.finkmirrors.net 10.4/release/main libtiff-shlibs 3.6.1-4 [110kB]
Get:3 http://bindist.finkmirrors.net 10.4/current/main xfree86-shlibs 4.5.0-1040 [2570kB]
Get:4 http://bindist.finkmirrors.net 10.4/current/main xfree86 4.5.0-1040 [47.8MB]
Get:5 http://bindist.finkmirrors.net 10.4/release/main libpng3-shlibs 1:1.2.8-1 [207kB]
Get:6 http://bindist.finkmirrors.net 10.4/release/main gdbm3-shlibs 1.8.3-1 [42.4kB]
Get:7 http://bindist.finkmirrors.net 10.4/release/main xemacs-base-pkg 1.84-1 [481kB]
Get:8 http://bindist.finkmirrors.net 10.4/release/main xemacs-efs-pkg 1.32-1 [377kB]
Get:9 http://bindist.finkmirrors.net 10.4/release/main xaw3d-shlibs 1.5-12 [400kB]
Get:10 http://bindist.finkmirrors.net 10.4/release/main xemacs 1:21.4.15-1002 [9301kB]
Fetched 61.4MB in 6m38s (154kB/s)                                              
Selecting previously deselected package libjpeg-shlibs.
(Reading database ... 4131 files and directories currently installed.)
Unpacking libjpeg-shlibs (from .../libjpeg-shlibs_6b-16_darwin-i386.deb) ...
Selecting previously deselected package libtiff-shlibs.
Unpacking libtiff-shlibs (from .../libtiff-shlibs_3.6.1-4_darwin-i386.deb) ...
Selecting previously deselected package xfree86-shlibs.
Unpacking xfree86-shlibs (from .../xfree86-shlibs_4.5.0-1040_darwin-i386.deb) ...
Selecting previously deselected package xfree86.
Unpacking xfree86 (from .../xfree86_4.5.0-1040_darwin-i386.deb) ...
WARNING: if you compile X11 applications against this XFree86 release,
you will *not* be able to run them if you decide to revert to Apple's
X11 provided with the OS.
Selecting previously deselected package libpng3-shlibs.
Unpacking libpng3-shlibs (from .../libpng3-shlibs_1%3a1.2.8-1_darwin-i386.deb) ...
Selecting previously deselected package gdbm3-shlibs.
Unpacking gdbm3-shlibs (from .../gdbm3-shlibs_1.8.3-1_darwin-i386.deb) ...
Selecting previously deselected package xemacs-base-pkg.
Unpacking xemacs-base-pkg (from .../xemacs-base-pkg_1.84-1_darwin-i386.deb) ...
Selecting previously deselected package xemacs-efs-pkg.
Unpacking xemacs-efs-pkg (from .../xemacs-efs-pkg_1.32-1_darwin-i386.deb) ...
Selecting previously deselected package xaw3d-shlibs.
Unpacking xaw3d-shlibs (from .../xaw3d-shlibs_1.5-12_darwin-i386.deb) ...
Selecting previously deselected package xemacs.
Unpacking xemacs (from .../xemacs_1%3a21.4.15-1002_darwin-i386.deb) ...
Setting up libjpeg-shlibs (6b-16) ...
Setting up libtiff-shlibs (3.6.1-4) ...
Setting up xfree86-shlibs (4.5.0-1040) ...
Setting up xfree86 (4.5.0-1040) ...

Setting up libpng3-shlibs (1.2.8-1) ...
Setting up gdbm3-shlibs (1.8.3-1) ...
Setting up xemacs-base-pkg (1.84-1) ...
Setting up xemacs-efs-pkg (1.32-1) ...
Setting up xaw3d-shlibs (1.5-12) ...
Setting up xemacs (21.4.15-1002) ...

$ /sw/bin/xemacs

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |

Jul 24, 2007

[Apple] Mac 用アプリケーションメモ

生まれて初めて Mac OS を使い始めたわけだが。 とりあえず困るのは Windows で手に馴染んでいたアプリケーションの代わりになるものがあるかどうかということ。 というわけで、知り合いの Mac OS 使いの方の助力を仰いで、Windows で良く使うアプリケーションの Mac OS 版(?) を教えてもらった。

Jedit X ( ← 秀丸エディタ)
http://www.artman21.net/product/JeditX/index.html
シイラ ( ← Sleipnir)
http://shiira.jp/
Fugu ( ← WinScp)
http://rsug.itd.umich.edu/software/fugu/
TinkerTool ( ← 窓の手)
http://www.bresink.de/osx/TinkerTool.html

Posted in Apple | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |