[OSX]NetBeansからsvn+sshでリポジトリにアクセス
2009.11 18

ここに手順はありますが、解りづらいので自分でググって辿っていきました。 まずコマンドベースでsvn+sshできるところまで さくらインターネットの場合、SSHログインの際に$PATHに読み込まれるパスにユーザ制限がかけら [...]

ここに手順はありますが、解りづらいので自分でググって辿っていきました。

まずコマンドベースでsvn+sshできるところまで

さくらインターネットの場合、SSHログインの際に$PATHに読み込まれるパスにユーザ制限がかけられるそうです。
よって、任意に配置したプログラムについては、 $HOME/bin へシンボリックリンクを貼っておく事で
問題を解決できます。
私の場合は、svn関連のコマンドは $HOME/local/bin に配置されていますので、以下の手順になりました。


% ln -s $HOME/local/bin $HOME/bin

続いて、リポジトリの初期化を行います。Berkeley DBは使用していないので、ファイルシステムにFSFSを
利用することとします。


% mkdir -p $HOME/svn/repos
% svnadmin create $HOME/svn/repos --fs-type fsfs

クライアント側で鍵認証のための手続きを行っていきます。
公開鍵を作成し、サーバ側に配置。その後、パスフレーズのスキップまでをついでに行います。
初期ディレクトリは /Users/ とします。


$ ssh-keygen -t rsa #パスフレーズを聞かれるので、入力しておきます。
$ scp .ssh/id_rsa.pub  @.sakura.ne.jp:.ssh/id_rsa.pub

#続いて、サーバにSSHログイン
% cd .ssh
% cat id_rsa.pub >> authorized_keys
% chmod 600 authorized_keys
% rm id_rsa.pub

#ここからクライアント側
$ ssh-agent bash
$ ssh-add
$ ssh -l username username.sakura.ne.jp

これでパスフレーズの入力なしでログインできたらOKです。

NetBeansからsvn+sshでリポジトリにアクセスする

NetBeansのバージョンは6.7です。まずはローカルのsvnクライアントについて設定を加えます。
/Users//.subversion/config を編集。
[tunnels]の項目で

ssh = ssh -l username

を追加。
NetBeansからのインポート、コミット時などのメッセージで日本語があるとエラーが表示されるので、
/Applications/NetBeans/NetBeans 6.7.1.app/Contents/Resources/NetBeans/etc/netbeans.conf
を編集し、netbeans_default_optionsの最後尾に以下を追加。

-J-Dfile.encoding=UTF-8

次に、
/Users//.subversion/config を編集。
[miscellany]の項目で

log-encoding = utf-8

と編集。

その後、NetBeansを再起動。
[チーム] -> [Subversion] -> [リポジトリにインポート]

リポジトリURLの項目に

svn+ssh://username.sakura.ne.jp/home/username/svn/repos
トンネルコマンドの項目に

ssh -l username

これでリポジトリにプロジェクトがインポートされます。
他に注意するのは、日本語のファイル名を持つファイルです。
ファイル名自体がUTF-8となっていないと、コミット時にエラーとなります。

私はDreamweaverを使ってないのですが、これでDreamweaverからもリポジトリにアクセス
できるはずなので、協業の際には役立ちそうです。
#Dreamweaver CS4からsvnクライアントの機能があり、svn+sshにも対応しています。

参考

  • [ssh] さくらサーバでsvn+sshを利用する方法(Linux/Mac)

関連記事

この記事へのコメント

さくらインターネットで今更subversionをインストール
2009.11 17

すでにgitでプロジェクトのソースを運用していましたが、以下の理由でsubversion(以下、svn)を インストールすることに。 個人かつ一人での開発がほとんど デザイナーにバージョン管理を進めたいのだけど、IDEに [...]

すでにgitでプロジェクトのソースを運用していましたが、以下の理由でsubversion(以下、svn)を
インストールすることに。

  • 個人かつ一人での開発がほとんど
  • デザイナーにバージョン管理を進めたいのだけど、IDEに統合されてるのはsvnが主流

というわけで、さくらインターネットのサーバにインストール。
今回インストールするバージョンは最新の1.6.6。以下、注意点。

  • deps(依存関係にあるパッケージをまとめたもの)を解凍するとsvnのソースディレクトリ内に展開されるので、面倒が少なくなる。
  • svnのバージョンが1.4.xあたりだと、自分でaprなどのパッケージをインストールしていかないといけない模様。
  • また、その場合はaprのバージョンが0.9.xか1.xかでも分かれる。

  • httpでリポジトリにアクセスするためにserfかneonのどちらか一方が必要だが、今のsvnはdefaultでneon。
    configure時に–without-serfを今回はつけた。
  • configure時にBerkeley DBが入ってないと警告がでるけど、そもそもオプションのパッケージなので無視でOK。
  • 結局のところ、各詳細はINSTALLを読めばOK。(英語やだとか言うんじゃありません)

インストールまでのコマンド


% wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
% wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
% tar xvfz subversion-1.6.6.tar.gz
% tar xvfz subversion-deps-1.6.6.tar.gz
% cd subversion-1.6.6
% ./configure --prefix=$HOME/local --with-ssl --without-serf
% make all install clean

参考

関連記事

この記事へのコメント

Shadowbox.jsをAjax.Updaterと併用する
2009.10 29

Lightbox系のライブラリとして任意のJavaScriptライブラリを使ってもOKなShadowbox.js。 非常に便利でおすすめ。私はprototype.jsをよく使うのでそれと併せています。jQuery対応のも [...]

Lightbox系のライブラリとして任意のJavaScriptライブラリを使ってもOKなShadowbox.js。
非常に便利でおすすめ。私はprototype.jsをよく使うのでそれと併せています。jQuery対応のものばかりで肩身が狭いですが。

Shadowbox.jsの仕様として、下記のようにheadタグ内のscriptタグで初期化する必要があります。

//日本語表示、画像とHTMLをレンダリング対象とする
Shadowbox.init({language : "ja", player: ["img", "html"]});

このためAjax.Updaterなどで部分的に反映された要素はShadowbox.jsのイベントハンドラ登録が行われていない状態です。

そこで、下記の要領でAjax.Updaterを使用後に再度イベントハンドラ登録を行うと要素の更新後もShadowbox.jsを利用できます。

私の場合はForm.EventObserverと併用しているので、その中でcallしているAjax.Updater内に記述しています。

new Ajax.Updater(id,
	url,
	{
		asynchronous:true,
		evalScripts:true,
		onComplete:function(request){
			//その他の処理
			//最後にイベントハンドラの登録をし直す
			Shadowbox.setup();
		},
		onLoading:function(request){
			//その他の処理
			//現在のイベントハンドラをすべてクリア
			Shadowbox.clearCache();
		},
		parameters:value
	})

prototype.js以外のライブラリを使用している場合も、同様にonCompleteやonLoadingに相当するイベントにフックさせれば大丈夫だと思います。

参考:

Shadowbox.js API

追記 2010.01.04

IE6, IE7の場合、Shadowbox.clearCache()を呼ばず、Shadowbox.setup()のみ呼び出すと
正常に動きます。原因はソースを追ってみないとわかりませんが、とりあえず。

また、Shadowbox.setup()の呼び出しタイミングはCGIから返されるHTMLの末尾でscriptタグ内に記述した方が良いです。
DOMのロードとJavaScript実行のタイミングを調整するためです。

関連記事

この記事へのコメント

[Rhaco]viewでPHPコード埋め込みがうまく動かない場合がある
2009.09 03

相変わらずRhacoで現プロジェクトの開発をぼちぼち進めている。 Rhacoのレンタルサーバでも大丈夫!というポリシーは素晴らしい。 専用サーバやVPSを提案しなくとも良いので、運用費がコストダウン。 今、開発で困ってい [...]

相変わらずRhacoで現プロジェクトの開発をぼちぼち進めている。

Rhacoのレンタルサーバでも大丈夫!というポリシーは素晴らしい。
専用サーバやVPSを提案しなくとも良いので、運用費がコストダウン。

今、開発で困っているのがviewへのPHP埋め込み。
下記のような状況でだけ、うまく動いたり動かなかったりする。

<a href=”<?php H::linkTo(‘hoge’) ?>”>どっかにリンク</a>

Hはhtmlヘルパークラスへのショートカットで、linkToメソッドは引数を受け取って、各アクションへのURLを生成する。

ググっても、なかなか情報がない。after railsならフレームワークだとしたら、上記のような書き方は真っ先に試しそうなものなのだけど、そうでもないのだろうか?

関連記事

この記事へのコメント

Rhaco UrlsとFlowを利用して他クラスのメソッドを呼び出すときの注意事項
2009.08 20

Rhacoを使って開発してるのだけど、細かな情報はまだまだ把握しきれてないので手探りが多い。 自分用のメモ。 index.phpでやること generic.Urlsのインポート urlパターンの定義 取得したparser [...]

Rhacoを使って開発してるのだけど、細かな情報はまだまだ把握しきれてないので手探りが多い。
自分用のメモ。

index.phpでやること

  • generic.Urlsのインポート
  • urlパターンの定義
  • 取得したparserでの実行

$parser = Urls::parser($pattern);
$parser->write();

他クラスでやること

  • extends TagParse
  • flowでテンプレートと変数を定義
  • $flow->parser()みたくparserを返す

関連記事

この記事へのコメント

IE7でAjaxのその後
2009.06 27

前回のエントリでIE7でAjaxリクエストの挙動がローカルとリモートで異なる件に触れた。 で、その後の調査結果。 IE7でJavaScriptを含んだプログラムを動かすと、ActiveXコントロールを含んでいるけど大丈夫 [...]

前回のエントリでIE7でAjaxリクエストの挙動がローカルとリモートで異なる件に触れた。

で、その後の調査結果。
IE7でJavaScriptを含んだプログラムを動かすと、ActiveXコントロールを含んでいるけど大丈夫?というポップアップがブラウザ上で表示される。動いてくれないと困るので、「はい」と答える。これが落とし穴。

この時点でActiveXObjectを使って動く前提とブラウザは思いこんでしまう模様。にも関わらず、XMLHttpRequest判定を前に持ってきているので、そっちでリクエストを投げようとするのが不整合の原因のようだ。

そう、つまりリモートにコンテンツを配置した場合はXMLHttpRequestで扱うとブラウザが思ってくれるので、エラーはでなくなるということだろう。うん、やっぱりXMLHttpRequestに統一してくれとして言えない。

ここからは最近なんとなく思うこと。Ajaxってもう、終わりな気がする。というかHTMLで何でも表現するのはいい加減限界だし、DojoやExt.jsのようなリッチUIを用意するのもブラウザ互換吸収とかで苦労するし、無理がきていると感じる。
なのでUI部分をFlashにという流れが今は主流なのだけど、コントロールの出来でいったらSilverlightのが上だろと思うので、棲み分けを作る側が理解して使い分けるのが正解なんだという当たり障りのない結論に落ち着いた。

とりあえず、業務アプリのUIはSilverlightでいきたい。今はまだFlashかなと思う。後々の浸透度次第か。

関連記事

この記事へのコメント

IE7でローカルからXMLHttpRequestを使うとエラー?
2009.06 19

ActiveXObjectの判定タイミングは前か後か? とある案件でここと同じであろう現象に遭遇。 IE7からXMLHttpRequestとActiveXObject両方に対応するようになっており、ActiveXObje [...]

ActiveXObjectの判定タイミングは前か後か?

とある案件でここと同じであろう現象に遭遇。
IE7からXMLHttpRequestとActiveXObject両方に対応するようになっており、ActiveXObjectの判定は後ろに持っていくべきと言われている。

が、実際のところローカルで実行するとXMLHttpRequestの判定は通るけれども、GETリクエストを投げたところで「アクセスが拒否されました」というエラーが。これはバグと言いたい。

で、結局ActiveXObjectの判定を前にもってくることで解決。腑に落ちない。


        if (window.ActiveXObject) {
            req = new ActiveXObject("Microsoft.XMLHTTP");
            if (req) {
                req.open("GET", url, false);
                req.send();
            }
        } else if (window.XMLHttpRequest) {
            req = new XMLHttpRequest();
            req.open("GET", url, false);
            req.send(null);
        }

ちょっとしたテストをすると、XMLHttpRequestでもActiveXObjectでもtrueとIE7はなる。うーん、善し悪しだこれは。
そうじゃない、ちゃんと仕様を統一してください。
ちなみに、上記の修正を行う前にはFirefoxとChromeは問題なし。IE7とSafariはNG。

やはりいらない子なのか。

とある案件のクライアントは、それまでIE6を使用していたことを考慮すると、IE7の使用率が増えたことでこういった不具合が起きている可能性があるかもしれない。この案件のリリース時はIE7対応しないという契約だったので、よくよく考えてみればこれって、有償にしていいんじゃないか?

冗談はさておき、ブラウザのバグとか仕様解釈の違いをこれだけシェアの大きいソフトウェアで製作者に押しつけたままというのは不満。だけど、それもプログラマの仕事という事実なのは否定できない。

関連記事

この記事へのコメント

jQueryベースのフォーム入力チェックを実装中
2009.04 23

CSS-Nite Aomoriで5分プレゼンを行うので、その準備中。 それと並行して、自分のサイトをWordPressベースで作ってみた。というか、テーマとして作るという宿題がほったらかしだったという。 で、RubyでY [...]

CSS-Nite Aomoriで5分プレゼンを行うので、その準備中。
それと並行して、自分のサイトをWordPressベースで作ってみた。というか、テーマとして作るという宿題がほったらかしだったという。

で、RubyでYAML形式の定義を元にFormを自動生成したくて、ちまちま書いているのだけど、せっかくだしvalidationはjQueryで作ってみることにした。巷にあふれているものではあるけど、自分の勉強がてらだ。

jQuery自体はバージョンいくつの頃だろう・・・だいぶ前に、prototype.jsとjQueryどちらをベースにしていくか?というテーマがプロジェクト内であって、jQueryの挙動が気に入らず、prototype.jsでいくことに。Railsもprototype.jsが前提なんだけど、あまりにjQueryの名前を聞くようになったし、今だと良くなってるのかもね?と思って使ってみた。バージョンは1.3.2。

 確かにCSSセレクタを使ってDOMにアクセスできるのは快適だし、直感的に書けるコードも多いのだけど、ちょっとHTMLやセレクタが複雑になってくると、思うように要素がとれなかったり、Arrayで値が返ってくるのかjQueryオブジェクトが返ってくるのかがまちまちだったりと、複雑なことやろうとすればするほど、DOM直接いじってる方が楽だな・・・とか思ってしまう。正しい使い方ができてないのだろうか?

$の挙動からいけば、やはりprototype.jsが自分には合っているようだ。というか、まずブラウザ側の挙動を統一してほしい。それに尽きる。挙動の違いを吸収してほしくて、javascriptフレームワーク使っているようなもんだし。今更すぎる内容だけど、改めて使ってみても、やはり思うことは同じだったりする。

となると、棲み分けなのだろうという結論。すでに固定のHTMLがあって、それに対して簡易的なエフェクトやDOM操作を行うなら、jQueryは非常に効率的だと思う。逆に何らかのデータフォーマットやHTTPレスポンスを元にHTML生成したりと、動的な実装をしたいのであればprototype.jsかなと思う。

エフェクトやGUIなどオールインワンのライブラリを求めるなら、Ext.jsかDojoあたりなのだろうか。思い立つことがあれば、今度はそっち側を試してみようと思う。

関連記事

この記事へのコメント

gitignoreにファイルを追加する方法
2009.04 20

.git/info/excludeにファイルパターンを記述する EclipseとかAptanaを使ってると.settings, .loadpath, .projectとかが邪魔なので追記必須かな。 特定ディレクトリ以下の [...]

.git/info/excludeにファイルパターンを記述する

EclipseとかAptanaを使ってると.settings, .loadpath, .projectとかが邪魔なので追記必須かな。
特定ディレクトリ以下のファイルのみだと、logs/**/*とかでいける模様。

関連記事

この記事へのコメント

git on さくらインターネットに移行してみた
2009.04 03

もともとXREAを自分のサーバとして利用していたのだけど、さくらインターネットに引っ越しをした。 それまでは、svnでソースを管理していたのだけど世間の流れに乗ってみようとgitを使ってみる。  手段のために目的を変える [...]

もともとXREAを自分のサーバとして利用していたのだけど、さくらインターネットに引っ越しをした。
それまでは、svnでソースを管理していたのだけど世間の流れに乗ってみようとgitを使ってみる。 

手段のために目的を変えるのはプログラマにはよくあることだと思う。勝手な偏見。というか自分がそうだ。
早速、先達の後を追ってgitの環境を構築。あっさり。素晴らしい。svnもめすぎ。

で、TortoiseGitの人柱になろうと思って導入したけど、どう見てもコマンドの方が楽です本当にありがとうございました。
いや、使いこなせてないだけだと思う。本当に。git-svnはさくらインターネットへの svnインストールのめんどくささから断念。
それまでsvnで管理してたものを切り離し、今後も開発が続いていくものだけをピックアップしてgitに移行。

それぞれのプロジェクトでちまちまコマンド打ってられないので、簡単なシェルを作ってさくさく。
私はWindows使いなのでcygwinですべての作業を行った。 
今月に開催されるCSS Nite Aomori でしゃべることになったので、そこで使おうと思っているネタをgit管理で作ろうと画策。
予定は未定なので、とりあえず言うだけにしておこう・・・ 

先月のRuby勉強会@青森でしゃべってみたりと、ちょっとずつ表に顔を出し始めている。
参加された方に少しでも意味のある内容になればと思うばかり。 
世の中の最前線で開発するプログラマ達に比べれば、自分のは稚拙な内容だと思うのだが、最終ビジョンが「町の IT屋さん」と思い描くようになってからは、プログラミングをしない、知らない人たちに対して、どうやったら自分たちの世界に対して敷居を下げつつ、楽しさとおもしろさ、便利さを伝えられるだろうかと考えている。

そのために自分の技術力の低さにへこむこともあるのだけど、技術は磨くのみだし、自分だけ満足してちゃもったいない。
基本、おせっかいなので地道にやれることをやっていきたい。 

なんか最後は日記的なひとりごとになってしまった。とりとめないので、今日はここまで。

関連記事

この記事へのコメント

« Newer PostsOlder Posts »

作者について

青森県内でソフトウェア・システム開発を行うフリーランスのプログラマー。元々は集中監視システム開発に従事。現在はウェブサイト製作・オンラインシステムの開発案件を中心に、プログラミングのスキルトレーニングや講演も行う。

TEL 0172-55-7030  FAX 0172-55-7031
10:00 - 18:00 土日祝休

恐れ入りますが、お急ぎの場合を除いて、メールにてお問い合わせください。