SSH Portが22以外のサーバとSVN
クソみたいなサーバにクソみたいなセキュリティを付与したいのがクソ人間たる所以。
例えば、ポート番号が7777だとする。
キーも用意しました、と。
これでSSH接続すると時はただ単にポートをかえて接続すれば良い。
MacならTerminal.appで
McLaren% ssh hoge@hoge.net -p 7777 -i ~/ssh_key/my_id_rsa
WindowsならPuTTYでポート番号を指定して接続すれば良い。

で、SubVersionでポートが違う場合、意外と面倒くさい。
なのでちょっとメモ。
まず、Macで接続する場合。
最初にTerminalでSSH接続し、鍵をkeychainに登録する。
これが無いと今回の方法では通らない。
~/.subversion/config
このファイルに
[tunnels] myssh = /usr/bin/ssh -p 7777
という記述を追加する。
mysshの部分は各自好きずき。
で、チェックアウトする際に
McLaren% svn checkout svn+myssh://hoge@hoge.net/svn/myrepos
と指定してやると、mysshの設定で接続してくれる。
おそらく
[tunnels] myssh = /usr/bin/ssh -p 7777 -lhoge
とかしてやれば
McLaren% svn checkout svn+myssh://hoge.net/svn/myrepos
で指定できるかも?
で、Winで接続する場合。
コマンドラインが無くて面倒なので、もっと便利なTortoriesSVNを使う。
まず、PuTTYのpagent.exeを立ち上げる。




普通にやったのではだめなので、設定ファイルを編集。

下記のように変更。
[tunnels] myssh = "C:/Program Files (x86)/PuTTY/plinkw.exe" -P 7777
これで行ける。
・・・簡単に書いたけど、Macは2ヶ月前に数日かけて解決し、Winの事例も今日2時間くらいかかった。。
こういうのが一番つらい。
そんだけ。
Macにzsh-develを入れる。
忘れちゃったのでメモ。
MacPortsが入っていること前提。
入れ方わかんない人は古い記事まで。
Variantsはこんな感じ。
McLaren:~ yuxx$ port variants zsh-devel zsh-devel has the variants: doc: Install extra documentation examples: Install configuration examples mp_completion: Install port(1) completion file pcre: Add regular expressions support in builtin functions through PCRE universal: Build for multiple architectures
早速インストール。
McLaren:~ yuxx$ sudo port install zsh-devel +mp_completion +pcre
で、終了時に
If you want MacPorts' zsh as login shell, you should run: % sudo sh -c "echo '/opt/local/bin/zsh' >> /etc/shells" % chsh -s /opt/local/bin/zsh ---> Cleaning zsh-devel
なんて出なかったら
McLaren:~ yuxx$ sudo port uninstall zsh ---> Deactivating zsh @4.2.7_0+dp_completion+mp_completion ---> Cleaning zsh ---> Uninstalling zsh @4.2.7_0+dp_completion+mp_completion ---> Cleaning zsh
でアンインストール。
で、続き。
さっきの指示通りにする。
McLaren:~ yuxx$ sudo sh -c "echo '/opt/local/bin/zsh' >> /etc/shells" Password: McLaren:~ yuxx$ chsh -s /opt/local/bin/zsh Changing shell for yuxx. Password for yuxx:
こんな感じ。
うまく行かない場合は /opt/local/bin へのPATHをもう一度通し直すと良かったりする可能性もある。
著者/訳者:中島 能和
出版社:翔泳社( 2008-12-04 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本(ソフトカバー) ( 272 ページ )
ISBN-10 : 479811815X
ISBN-13 : 9784798118154
NewsFireの移行
Macで小粋なRSSリーダと言えばNewsFire。
これ、昨日DLしようとしたらVer.2を機にAppStoreで有料化したらしい。
まぁ、それはそれとして手持ちのMacBook Airからバイナリと設定を移行することに。
バイナリはファイル共有で簡単に「アプリケーション」から複製した物を置いて送ればOK。
で、設定ファイルが若干手間。
保存先は例によってLibrary以下
~/Library/Application Support/NewsFire
これを持っていく。
Sauber% cp -a ~/Library/Application\ Support/NewsFire . Sauber% tar cjf NewsFire.tar.bz2 NewsFire
あと、もう一つ必要で
~/Library/Preferences/org.xlife.NewsFire.plist
これらをファイル共有して移動先に持っていく。
例によって解凍&移動。
McLaren% tar xjf NewsFire.tar.bz2 McLaren% cp -a NewsFire ~/Library/Application\ Support/
あと、
McLaren% cp org.xlife.NewsFire.plist ~/Library/Preferences/
も忘れずに。
FreeBSDなphpのdate設定
なんか、cactiと言うログツールの設定中、バッチにてdate関連のエラーが。
どうやら設定していなかったと言う。。。
/usr/local/etc/php.ini
を編集。
date.timezone = Asia/Tokyo
以上。
著者/訳者:Rasmus Lerdorf Kevin Tatroe Peter MacIntyre
出版社:オライリー・ジャパン( 2007-10-23 )
定価:¥ 3,990
Amazon価格:¥ 3,990
大型本 ( 448 ページ )
ISBN-10 : 4873113423
ISBN-13 : 9784873113425
Thunderbirdのデータ移動 (Mac to Mac)
MacBook Pro 17″ (Early 2011)を購入したのを機に、初代MacBook Airからあらゆる環境を移行しようと思ってる。
で、メールアカウントもここに登録しているので、Thunderbirdから移行することに。
ちなみに、このアカウントは昔から使っているアカウントが脈々と受け継がれたもの。
結構大切だったりする。
で、実作業の備忘録。
まず、元データのあるマシンでの作業。
Thunderbirdのデータは
~/Library/Thunderbird/Profiles/(ユーザごと固有の値).default
以下に保管されている。
便宜上(ユーザごと固有の値)を以下「hoge1foo9bar」とする。
これをとりあえず圧縮することにする。
Sauber% cp -a ~/Library/Thunderbird/Profiles/hoge1foo9bar.default . Sauber% tar cjf hoge1foo9bar.default.tar.bz2 hoge1foo9bar.default
こんな感じ。
この圧縮作業、意外と時間がかかった。
ちなみにディレクトリ容量は1.6GB。。
圧縮しても428MBくらいあった。。。
このファイル(hoge1foo9bar.default)をファイル共有とかで移行先に送る。
次からは移行先での作業。
Thunderbirdをインストールしてない場合はインストール。
で、さっきのファイルをやっぱり
~/Library/Thunderbird/Profiles/
に設置する。
そこで解凍する。
McLaren% tar xjf hoge1foo9bar.default.tar.bz2 hoge1foo9bar.default
今度は
~/Library/Thunderbird/Profiles/profiles.ini
のPathを編集する。
(存在しない場合は一度Thunderbirdを立ち上げてみる。)
このとき、Thunderbirdは閉じておくこと。
[General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=1 Path=Profiles/hoge1foo9bar.default
で、起動すればあら不思議、普通に使えちゃいます:-)
はじめてのThunderbird3―for Windows/MacOS X/Linux 人気メーラーの「基本操作」と「アドオン」 (I・O BOOKS)
出版社:工学社( 2010-04 )
定価:¥ 1,995
Amazon価格:¥ 1,995
単行本 ( 159 ページ )
ISBN-10 : 4777515168
ISBN-13 : 9784777515165
Javaと例外
Javaで標準クラスを使う限り例外機構の実装はTry-Catchで決まりそう。
自前クラスをわざわざ用意するのは無駄なので標準クラスを使いたいところ。
なので、あまり好きじゃないけどTry-Catch文で試す。
前回の引数をとる続編として、引数をどんどん掛け算して行く。
Try-Catch文の書き方は
try
{
/* 処理 */
}
catch( 受け取るエラーのException型 変数 )
{
/* 処理でこけた後の処理 */
}
となる。
try文で処理をテストして、エラーが出た瞬間にcatch文へ進む。
catch文で例外の型に合致する箇所でパラメータを受け取り、適宜処理をする。
ArgumntsCalc.java
class ArgumentsCalc
{
public static void main( String args[] )
{
int argc = args.length;
double tmp, ans = 1.0;
for( int i = 0; i < argc; ++i )
{
try
{
ans *= Double.parseDouble( args[i] );
}
catch( NumberFormatException e )
{
System.out.println( e );
}
}
System.out.println( "result is " + ans + "." );
}
}
こんな感じ。
エラーが起きたらとりあえずエラー内容を出力する。
実行結果は下記の通り。
McLaren% javac ArgumentsCalc.java McLaren% java ArgumentsCalc 2.0 5 x java.lang.NumberFormatException: For input string: "x" result is 10.0.
著者/訳者:ジョゼフ・オニール
出版社:翔泳社( 2008-05-29 )
定価:¥ 3,360
Amazon価格:¥ 3,360
大型本 ( 528 ページ )
ISBN-10 : 4798117153
ISBN-13 : 9784798117157
Javaと引数
Javaで引数をとってみる。
引数を複数とって、その数と引数自体を表示し、その長さも表示したい。
実行方法は
McLaren% java ArgumentsTest x y z abc
とする。
で、こんな感じのコードを書いてみた。
ArgmentsTest.java
class ArgumentsTest
{
public static void main( String args[] )
{
int maxLen = args.length;
System.out.println( "total arguments count is " + maxLen + "." );
for( int i = 0; i < maxLen; ++i )
{
System.out.println( "\tcurrent arguments is \"" + args[i] + "\"." );
System.out.println( "\t\tlength is " + args[i].length() + "." );
}
}
}
Javaでは引数がmainで取得したString型の変数に集約される。
と言うのも、引数の数を取得したければ .lengthを付け足せばそのメンバ変数に引数の数が入っている。
各々の引数は配列毎に格納されるので、その中で長さを取得したければ .length()メソッドを呼び出せば文字列長を取得することが出来る。
実行結果は下記の通り。
McLaren% javac ArgumentsTest.java McLaren% java ArgumentsTest x y z abc total arguments count is 4. current arguments is "x". length is 1. current arguments is "y". length is 1. current arguments is "z". length is 1. current arguments is "abc". length is 3.
著者/訳者:ジョゼフ・オニール
出版社:翔泳社( 2008-05-29 )
定価:¥ 3,360
Amazon価格:¥ 3,360
大型本 ( 528 ページ )
ISBN-10 : 4798117153
ISBN-13 : 9784798117157
Javaと標準出力と変数など
Javaを弄ろうと思って本読んでる。
で、とりあえずさっきHello Worldも出してみたわけ。
PHPべったりで、Cを少し勉強した俺からして、「Javaってどんな感じかなぁ。」というのが知りたかった。
まず、文字出力メソッドがおおらか。
例えば、下記のようなコードは普通に通る。
PrintTest.java
class PrintTest
{
public static void main( String args[] )
{
int num = 10000;
System.out.println( "num is " + num );
}
}
McLaren% javac PrintTest.java McLaren% java PrintTest num is 10000
なんか、JavaScriptと同じと言うか、この部分はJavaをそのまま流用したような実装になってるんだなぁ、と。
配列に関してもおおらか。
気持ち悪い書き方だけど、下記コードと実行結果。
ArrayTest.java
class ArrayTest
{
public static void main( String args[] )
{
int nums[];
nums = new int[10];
for ( int i = 0; i < 10; ++i )
{
System.out.println( "current num is " + nums[i] );
}
System.out.println( "end" );
}
}
McLaren% javac ArrayTest.java McLaren% java ArrayTest current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 current num is 0 end
new、mallocと言うよりはcallocと言う雰囲気。
まぁ、メモリ確保した後すぐに中身入れ替えちゃうような時は無駄な気がするけど、事故るよりは良いってことなんでしょうな。
あと、面白いのは
arrayVarName.length
とすると、そのまま配列の個数が取得できる。
class ArrayTestWithInit
{
public static void main( String args[] )
{
int nums[];
nums = new int[10];
int max = nums.length;
System.out.println( "nums length is " + max );
for ( int i = 0; i < max; ++i )
{
nums[i] = i;
}
for ( int i = 0; i < max; ++i )
{
System.out.println( "current num is " + nums[i] );
}
System.out.println( "end" );
}
}
McLaren% javac ArrayTestWithInit.java McLaren% java ArrayTestWithInit nums length is 10 current num is 0 current num is 1 current num is 2 current num is 3 current num is 4 current num is 5 current num is 6 current num is 7 current num is 8 current num is 9 end
こう言うことも出来る。
著者/訳者:ジョゼフ・オニール
出版社:翔泳社( 2008-05-29 )
定価:¥ 3,360
Amazon価格:¥ 3,360
大型本 ( 528 ページ )
ISBN-10 : 4798117153
ISBN-13 : 9784798117157
いろんな言語でこんにちは[ Java篇 ]
JavaでのHello World。
Mac OSXで動作確認済み。
あ、コンソールのみね。
class HelloWorld
{
public static void main( String args[] )
{
System.out.println( "Hello World!" );
}
}
McLaren% javac HelloWorld.java McLaren% java HelloWorld Hello World!
著者/訳者:ジョゼフ・オニール
出版社:翔泳社( 2008-05-29 )
定価:¥ 3,360
Amazon価格:¥ 3,360
大型本 ( 528 ページ )
ISBN-10 : 4798117153
ISBN-13 : 9784798117157
ベクトル その8 -クロス積-
Posted by yuxx in Mathematics on 2010年9月25日
外積
ドット積のほかにベクトルではもうひとつの掛け算の方法がある。
「クロス積」または「外積」として知られている。
クロス積は
と表記することからこう呼ばれる。
3Dベクトルのみに適用できる。
また、ドット積とは違い、可換ではない。
公式:![\left[ \begin{array}{c} x_1\\ y_1\\ z_1 \end{array} \right] \times \left[ \begin{array}{c} x_1\\ y_1\\ z_1 \end{array} \right] = \left[ \begin{array}{c} y_1 z_2 - z_1 y_2\\ z_1 x_2 - x_x z_2\\ x_1 y_2 - y_1 x_2 \end{array} \right] \left[ \begin{array}{c} x_1\\ y_1\\ z_1 \end{array} \right] \times \left[ \begin{array}{c} x_1\\ y_1\\ z_1 \end{array} \right] = \left[ \begin{array}{c} y_1 z_2 - z_1 y_2\\ z_1 x_2 - x_x z_2\\ x_1 y_2 - y_1 x_2 \end{array} \right]](http://yuxx.net/wp-content/latex/675/675f8a897d050aa6ab4d009637dc69e3-ffffff-000000-0.png)
例:
![\left[ \begin{array}{c} 4\\ 1\\ 9 \end{array} \right] \times \left[ \begin{array}{c} -3\\ 7\\ 2 \end{array} \right] = \left[ \begin{array}{c} (1)(2) - (9)(7)\\ (9)(-3) - (4)(2)\\ (4)(7) - (1)(-3) \end{array} \right] = \left[ \begin{array}{c} 2 - 63\\ -27 - 8\\ 28 - (-3) \end{array} \right] = \left[ \begin{array}{c} -61\\ -35\\ 31 \end{array} \right] \left[ \begin{array}{c} 4\\ 1\\ 9 \end{array} \right] \times \left[ \begin{array}{c} -3\\ 7\\ 2 \end{array} \right] = \left[ \begin{array}{c} (1)(2) - (9)(7)\\ (9)(-3) - (4)(2)\\ (4)(7) - (1)(-3) \end{array} \right] = \left[ \begin{array}{c} 2 - 63\\ -27 - 8\\ 28 - (-3) \end{array} \right] = \left[ \begin{array}{c} -61\\ -35\\ 31 \end{array} \right]](http://yuxx.net/wp-content/latex/caf/cafa25937070257095b64773495bc198-ffffff-000000-0.png)
クロス積の計算は足し算や引き算の優先順位は変わらないが、ドット積とクロス積を組み合わせた場合はクロス積が優先的に計算される。

クロス積は各々のベクトルに垂直なベクトルとなる。

上記の図ではベクトルa、bは同じ平面上にあり、その平面に垂直なベクトルとなる。
また、
の長さははベクトルa、bの大きさにベクトルa、bなす角のsinを掛けたものと等しくなる。
公式:
aとbが平行、またはどちらかがゼロベクトルならば
となる。
クロス積はゼロベクトルを全てのベクトルに平行と見なす。
また、
はaとbに平行であるもののこちらへ向かってくるベクトルなのか、遠ざかって行くベクトルなのかで2つの可能性がある。

上記は右手系座標系である。
図のようにベクトルaとbを連結したときに反時計回りをする場合、
はこちらへ向かっていることになる。
逆に、時計回りになった場合、遠ざかっている。
また、左手座標系では時計回りの時近づき、反時計回りの時に遠ざかることになる。
著者/訳者:Fletcher Dunn Ian Parberry
出版社:オライリージャパン( 2008-10-04 )
定価:¥ 3,570
Amazon価格:¥ 3,570
大型本 ( 484 ページ )
ISBN-10 : 4873113776
ISBN-13 : 9784873113777





