Svn on Mac
MacOS XのFinderへSubversionクライアント機能を組み込むSCPlugin。
既に何個か記事を書いているが、実は自分で使っているMacBook上ではビルドが出来ない状態が続いていた。

が、いろいろ調べて、ついにビルドする事が出来るようになった。
これで最新のtrunk版を追っかけていける。
03/29
Category: Subversion
       7 コメント   
 
 
SVN on Mac
Eclipse、もはや溺愛してる。CDP使って組込み向けのファームウェア(C言語)開発にも使ってるくらい。

その理由の一つに、Subversionと統合していると言う点がある。
使いやすいSubversionクライアントが有れば、ソースコード中に吹き荒れる変更履歴の嵐/コメントの嵐を一掃し穏やかかつ見通しの良いソースを取り戻し、そして可逆性も維持することが出来る。

Eclipse上でそれを実現するのがSubclipseプラグイン。 最近のEclipseであればインストールも本当に簡単。SubversionのJava実装であるJavaSVNモードで使用すれば、MacOS X上で使用出来る。

だが、ちょっと問題が出た。どうも/etc/hostsファイルに記述されたホストへのアクセスが出来たり出来なかったり、なのだ。

  • ローカルで展開しているレポジトリであっても、ローカル/リモート区別無くsvn+ssh経由でアクセスするようにしている

  • authorized_keysに"svnserve -t -r /path/to/repos"を記述する事で、レポジトリへのURLを簡略化させている


という状況において、

  • svn+ssh://localhost/reposはダメ

  • svn+ssh://127.0.0.1/reposはOK

  • サーバ上のsvnserveを-r付きで実行するようシェルでラップするとsvn+ssh://localhost/reposもOK


という状況に。
まぁ、コレで運用してもいいのだが、原因を探っている途中でMacOS XモードでもJavaHLで使用出来る事が分かったのでやり方を残しておく。

Subclipseをインストールしただけだと、MacOS X上ではJavaHLを選択しようとしても「javaHLが見つからないよ!」とエラーになる。
そこで、SubversionのJavaバインディングであるJavaHLをインストールする。

Subclipse本家FAQではMetissianパッケージによるインストールを推奨しているが、このパッケージは更新が遅く、現時点では1.3系列までしか配布していない。
ここはやはり、コマンドラインクライアントと同様にMacPorts経由で...と探したらちゃんとありました。
$ sudo port install subversion-javahlbindings

でjavaHLをインストール。結構ビルドに時間かかりました。

そして何も考えずそのままEclipseを起動、 設定>チーム>SVNで、エラーを起こす事無くJavaHLが選択可能になった。
そのまま、Subversion関係の操作をしても正常に利用出来る。
先のsvn+ssh://localhost/reposというURLによるアクセスもJavaHLでなら問題なくアクセスる事が出来た。

エクリプスWikiではJavaHLよりJavaSVNの方が高速だという話。暇を見て比較してみるか。
02/10
Category: Subversion
       59 コメント   
 
 
Flashを使ったMP3プレーヤーXSPF Web Music PlayerをNucleus上で利用するためのプラグインを作ってみました。
メディアとしてアップロードしたMP3ファイルをWeb上で再生する事が出来ます。
また、XMLで記述されたプレイリストを用いると、複数の曲を再生する事が出来ます。
02/06
Category: Web
       コメントを書く   
 
 
googlebot行かないでーー
弊社のWebSiteが本格稼働したのは2006年の年末頃。
実はその前から今の転がるロゴマークとComming Soonとだけ表示するFlashだけが表示される状態が半年近く続いていたのだ。

そしてNucleusを活用した弊社WebSiteを設置。この時にようやくgoogleやyahooへの登録申請を出した。加えて、googleにかんしてはgoogle SiteMapに準拠したSiteMap XMLを生成し、Google Webマスターツールを見てみると...

あれ?本格設置前に一度クロールが来ている。でもインデックス登録されてない...
まぁ、Flashだけしかなかったし...

と、申請してから1ヶ月が経ち、ようやくインデックス登録された。

が、

クロールしに来てくれてない!!なぜだ!!おかげで社名で検索しても出てこないじゃないか!!

Webデザインを引き受ける弊社としては、SEO対策が出来ていないと言う事で由々しき自体。
同時期に弊社でデザインしたクライアントのSiteは、とっくの昔にGoogle/Yahooともに登録されているんですが。

追記: 2007/1/30
愚痴ったら無事クロールが来て登録されました
01/29
Category: Web
       コメントを書く   
 
 
automator
Automatorを使った作業の自動化に慣れると、普段から、今やっている作業がAutomatorで自動化出来ないかどうかを考えながら作業していくようになってくる。

だが、現状のAutomatorでの作業の自動化で大きな壁となるのが、そのAutomator Actionへの対応アプリケーションが少ない事だ。
Automator Action自体はAppleScriptを用いれば、Actionに対応していないがAppleScriptに対応しているアプリケーションであれば、そのAppleScriptで記述されたActionを作る事が出来る。

だが、さすがに日々のちょっとした自動化の試みのためにAppleScriptを駆使してActionを書き、デバッグすると言うのは少々ハードルが高い。
そこで Actionを配布しているサイトが無いかと探す事になるのだが、思いもよらぬ所で配布されているのに気がついた。

米Appleのダウンロードページだ。

他にもActionの配布サイトは有るが、ここだけでかなりの数のActionが配布されている。
今回はMicrosoft OfficeのActionを入手。これだけでも日々の作業がだいぶ自動化出来そうだ。
01/29
Category: Automator
       コメントを書く   
 
 
Subversion on Mac
SCPlugin for IntelMacで判明したように、現在のバージョンのSCPluginはssh経由でうまく動作しないようだ。パスワード認証のssh経由でうまく動作しないようだ。

もともとsvn+ssh経由で使っている間、操作時に毎回パスワード入力しなければならないのがめんどかった(もしかして鍵認証ならSCPlugin動いたりしてパスフレーズ無しの鍵認証なら SCPluginで正常動作)し、svn+sshによる運用をやめる事にする。
となると、Apacheでmod_dav経由にするか、sshを使わないsvnserve経由のアクセス、と言う事になるのだが、ここは動作速度も速いsvnserveで運用する事にする。

svnserveをsshトンネルモード以外で運用する場合、

  • inetd経由で起動 -- 必要な時のみ起動する

  • Daemonモードで起動 -- 起動しっぱなし


のいずれかになる。リソースの無駄を省くためにもinetd経由で起動させる事とする。

さて、MacOS X 10.4以降は、他のUNIX環境のようなinetd/xinetdが無く、代わりにinitをも含めた、launchdという新設計のスーパーデーモンが使われている。

MacOS X Tiger: UNIXベース
Tigerではlaunchdのおかげで起動時間が短くなりました。launchdではデーモンの起動、終了および管理に統一されたフレームワークを使用するようになり、さらにinit、mach_init、System Starterおよび関連サービスを組み込むことにより高速起動を実現しました。


10.4の起動が従来より劇的に早いのはこのため。主流LinuxディストリやWindowsXP等に比べてもかなり早い。

svnserveをこのlaunchd経由で起動させる事とにする。

参考情報


launchdの設定ツールであるLingonはなかなか便利。今回もこれを使って設定する事とする。
Lingon
※ちなみにLingonの現バージョンでは、/Library/LaunchAgents, /Library/LaunchDaemonsのディレクトリを先に作っておかないとエラーが発生し、新しい設定ファイルが作れないようだ。

1. Users/Daemonsを新しく追加。設定は以下。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<false/>
<key>Label</key>
<string>localhost.svnserve</string>
<key>OnDemand</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/svnserve</string> -- MacPortsでインストールされたもの
<string>-i</string>
<string>-r</string>
<string>/Users/Shared/svn</string> -- レポジトリのあるディレクトリをルートとして指定しておく
</array>
<key>ServiceDescription</key>
<string>Subversion Server</string>
<key>Sockets</key>
<dict>
<key>Listeners/tcp</key>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svn</string> -- /etc/servicesに記載のある名称、あるいは素のポート番号
<key>SockType</key>
<string>stream</string>
</dict>
<key>Listeners/udp</key>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svn</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>

2. Save & Reloadする(要管理者権限)

後はアクセスして動作するかどうかを確認して見れば良い。ちなみにLingonを使わない場合は上記の設定ファイルを/Library/LaunchDaemons/localhost.svnserve.plistとして保存し、
$ sudo launchctl load -w /Library/LaunchDaemons/localhost.svnserve.plist

すれば良い。

手元の作業コピーをsvn switch --relocateしたところ、SCPluginでの動作も良好のようだ。

12/29 追記
SCPluginがパスフレーズ無しの鍵認証で動作する事が分かった。どちらで運用していくか思案中。
12/28
Category: Subversion
       22 コメント   
 
 
SCPlugin
e-flatではSubversionを活用している。ソースコードの管理はもとより、起業に関する書類から名刺、見積もりまで、会社に関するドキュメント類はすべてレポジトリに突っ込んでいる。
これにより、作業コピーとレポジトリで多重化され、バックアップも兼ねているつもり。

さてさて、MacOS X版tortoiseSVNとも言えるSCPlugin
Finderのコンテクストメニューからチェックアウト/コミットなどが出来るだけでなく、アイコンオーバーレイによる状態の表示が分かりやすく、事故が未然に防げる。

ずっとSCPluginを試してみたかったのだが、今までintelMacに非対応だったため仕方なくMacPortsでインストールした純正クライアントとEclipse上でのSubclipseを使っていた。

そのSCPlugin、ついにUniversal対応版がリリースされているので、試してみた。

SCPluginのプロジェクトドキュメント

1. 上のリンク先より、リビジョン396のバイナリをダウンロード、解凍
2.  SCFinderPlugin.pluginを~/ライブラリ/Contextual Menu Items以下にコピーする
(このフォルダが無い場合は作成する)
3. command+option+ESCを押し、Finderを選択、再起動させる

これによりFinder上で右クリック or ctrl+クリックで出るコンテキストメニューに、Subversioに関するコマンドが追加されるはずだ。
SCPluginキャプチャ


"*EXPERIMENTAL* universal build"と記述されているリビジョン391ビルドと、universalかどうかが分からないリビジョン396がリリースされているが、実際はどちらもUniversalバイナリとなっており、実際にr396をMacBookにインストールした所、正常に動作するようだ。

ただし、svn+ssh経由でチェックアウトしている作業コピーを操作しようとするとエラーになる。どうやらsvn+sshにうまく対応出来ていないようだ...(追記参照)

svnをApache経由でやるか、svnserveをssh経由でないやりかたにするか...さてさて。


12/29 追記: SCPluginでのsvn+sshについて
パスフレーズ無しのDSA鍵認証でSSHの認証が行われるようにした所、SCPluginでもsvn+sshスキーマが動作した。
必要性がないのでパスフレーズ有りは試していない。

2007/2/10追記: Universal Binary正式版リリース
1/27にUniversal Binaryの正式リリース版0.6(build407)がリリースされていました。
SCFinderPluginを入れ替えた後、Finderの再起動だけでは起動中のデーモンは入れ替わらず、(メンドクサイから)MacOSごと再起動させるとちゃんと入れ替わりました。
12/28
Category: Subversion
       2 コメント   
 
 
Automator

最近、知り合いが事務所を開設した。
で、Faxがほすぃ!Macでやれる方法教えて!と頼まれた。

以前はFaxStfとか使ったなぁ、と思い出しながら、調べてみると今はMacOS Xの標準の機能としてモデムを使ったFaxの送受信機能があるようだ。おや、いつの間に。

慣れない他人の事務所なので番号間違えたりしたが、なんとかFaxが送受信出来る事を確認。受信したデータはpdfになる。便利。

そして、受信したらメールで通知する機能が有るのでそれを使って...

動かない。

SMTPサーバーの設定すらないので、おかしいなぁ、と思っていたら、案の定。

Mac OS X 10.3, 10.4: ファクスの受信後に、メールによる通知が送信されない
ただし、ISP から静的 IP アドレスを取得していない場合は、ファクスの着信やインターネットとの接続に問題がなくても、メールによる通知を受信することができません。

だそうです。
フォルダアクションスクリプトを設定して“Shared Faxes”フォルダに添付すると、着信したファクスはメールの添付ファイルとして自動的に送信されます。ただしユーザが誰もコンピュータにログインしていないと、この機能は実行されません。


しかし、そんなスクリプトの例は提示されていない。

作ります(`・ω・´)
ロボットのアイコンが可愛いAutomator使います。使ってみたかったから。
12/26
Category: Automator
       2 コメント   
 
 
MacやWindowsなどのアプリケーションレビュー、開発上で得たTipsなどを公開していきます。
12/24
Category: General
       1 コメント   
«Prev | | 1 · | Next»