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時間くらいかかった。。
こういうのが一番つらい。

そんだけ。

Post to Twitter

, , , , ,

No Comments

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をもう一度通し直すと良かったりする可能性もある。

zsh最強シェル入門

著者/訳者:中島 能和

出版社:翔泳社( 2008-12-04 )

定価:

Amazon価格:¥ 2,592

単行本(ソフトカバー) ( 272 ページ )

ISBN-10 : 479811815X

ISBN-13 : 9784798118154


Post to Twitter

, , ,

No Comments

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/

も忘れずに。

Post to Twitter

, ,

No Comments

FreeBSDなphpのdate設定

なんか、cactiと言うログツールの設定中、バッチにてdate関連のエラーが。
どうやら設定していなかったと言う。。。

/usr/local/etc/php.ini
を編集。

date.timezone = Asia/Tokyo

以上。

プログラミングPHP 第2版

著者/訳者:Rasmus Lerdorf Kevin Tatroe Peter MacIntyre

出版社:オライリー・ジャパン( 2007-10-23 )

定価:

Amazon価格:¥ 4,000

大型本 ( 448 ページ )

ISBN-10 : 4873113423

ISBN-13 : 9784873113425


Post to Twitter

,

No Comments

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 )

定価:

Amazon価格:¥ 17,615

単行本 ( 159 ページ )

ISBN-10 : 4777515168

ISBN-13 : 9784777515165


Post to Twitter

No Comments

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.

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

, , ,

No Comments

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.

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

, ,

No Comments

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

こう言うことも出来る。

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

,

No Comments

いろんな言語でこんにちは[ 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!

独習Java 第4版

著者/訳者:ジョゼフ・オニール

出版社:翔泳社( 2008-05-29 )

定価:

Amazon価格:¥ 3,456

大型本 ( 528 ページ )

ISBN-10 : 4798117153

ISBN-13 : 9784798117157


Post to Twitter

, ,

No Comments

ベクトル その8 -クロス積-

外積
ドット積のほかにベクトルではもうひとつの掛け算の方法がある。
「クロス積」または「外積」として知られている。
クロス積はa \times bと表記することからこう呼ばれる。
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}  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]
クロス積の計算は足し算や引き算の優先順位は変わらないが、ドット積とクロス積を組み合わせた場合はクロス積が優先的に計算される。
a \cdot b \times c = a \cdot (b \times c)

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

上記の図ではベクトルa、bは同じ平面上にあり、その平面に垂直なベクトルとなる。
また、a \times bの長さははベクトルa、bの大きさにベクトルa、bなす角のsinを掛けたものと等しくなる。
公式:\|a \times b\| = \|a\|\|b\|sin\theta

aとbが平行、またはどちらかがゼロベクトルならばa \times b = 0となる。
クロス積はゼロベクトルを全てのベクトルに平行と見なす。
また、a \times bはaとbに平行であるもののこちらへ向かってくるベクトルなのか、遠ざかって行くベクトルなのかで2つの可能性がある。

上記は右手系座標系である。
図のようにベクトルaとbを連結したときに反時計回りをする場合、a \times bはこちらへ向かっていることになる。
逆に、時計回りになった場合、遠ざかっている。
また、左手座標系では時計回りの時近づき、反時計回りの時に遠ざかることになる。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments