h-kageyuの日記

2012-05-29

Android SDK

| 11:43

ウィンドウズで開発している場合ドライブの容量に泣かされることは多い。

Android SDK を普通に c ドライブにインストールしたが、容量が少なくなっているのに気が付き別のドライブにインストールしなおした。

一旦消して、再度インストールしたので時間が掛かる掛かる。

で、eclipse を立ち上げると SDK が認識されていないようで

java.lang.NoSuchMethodError: com.android.sdkuilib.internal.widgets.SdkTargetSelector.access$000(Lcom/android/sdkuilib/internal/widgets/SdkTargetSelector;)Z

というエラーが出る。

eclipse に -clean を付けて起動させれば良いらしいが、何時間かかってもうんともすんとも言わず(CPUは消費している)ので、諦めて workspace ディレクトリの中の .metadata を削除して、再度 eclipse を起動。

すると正常に認識できるようになった。

全部のプロジェクトがなくなってしまうので、再度インポートしなければならないが、これで以前作ったHelloWorldなどのアプリが動いた。

2012-05-16

vmware server

| 18:41

vmware server が起動しなくなった。

イベントビューアを見てみると vmware のサービスの起動に失敗してるようだ。

Request by process 928 to open '\\.\Global\hcmon': unrecognized pid

http://d.hatena.ne.jp/orangeclover/20120507/1336394540

でも触れられいるように、datastores.xml.default をコピーすればいいみたいだけど、ファイル自体なくても起動はするみたいです。

C:\ProgramData\VMware\VMware Server\hostd\datastores.xml

を見てみると、ファイルの中身がキレイさっぱりなくなっている。

ファイルを削除して起動させると動いた。

2012-04-25

paypal

| 09:47

paypalAPIバージョンは

http://d.hatena.ne.jp/hokaccha/20120213/1329107283

さんによると、

https://www.x.com/developers/paypal/forums/nvp/latest-paypal-api-version-api-calls

に書いてあるらしい。

おい、そんなこと知らんかったぞ。

Document に書いといてくれよー。

あ、これは違っていて、最新版は paypal のどこでもいいから、TOPページなどのソースに書かれている。

web version: 88.0-2849757 branch: UPR_880_int

で、88.0 になるそうだ。

で、やっととれた

def kansuu(params)
  require 'httpclient'

  client = HTTPClient.new                          
  client.debug_dev = STDOUT                              
  client.ssl_config.verify_mode = nil                                      
  params = {                                                                 
    'USER'      => Settings.PAYPAL_USER,                                         
    'PWD'       => Settings.PAYPAL_PWD,                
    'SIGNATURE' => Settings.PAYPAL_SIGNATURE,             
    'VERSION'   => Settings.PAYPAL_VERSION,
    'PAYMENTREQUEST_0_AMT' => params[:amount],           
    'PAYMENTREQUEST_0_PAYMENTACTION' => 'Sale',                            
    'REQCONFIRMSHIPPING' => Settings.PAYPAL_REQCONFIRMSHIPPING,              
    'NOSHIPPING' => Settings.PAYPAL_NOSHIPPING,                                  
    'RETURNURL' => params[:return_url],
    'CANCELURL' => params[:cancel_url],                                          
    'METHOD'    => Settings.PAYPAL_SET_METHOD                                   
  }                                                                             
  return client.post(Settings.URL_SET_EXPRESS_CHECKOUT, params)

return_url と cancel_url が設定されてなかったので

"body={\"TIMESTAMP\"=>\"2012-04-25T02:56:09Z\", \"CORRELATIONID\"=>\"26c0d0904a91b\", \"ACK\"=>\"Failure\", \"VERSION\"=>\"88.0\", \"BUILD\"=>\"2840849\", \"L_ERRORCODE0\"=>\"10400\", \"L_SHORTMESSAGE0\"=>\"Transaction refused because of an invalid argument. See additional error messages for details.\", \"L_LONGMESSAGE0\"=>\"Order total is missing.\", \"L_SEVERITYCODE0\"=>\"Error\"}"

というエラーになっていたようだ。

なんか違うことを言われてる・・・

2012-04-23

環境依存の設定をするには

| 20:45

http://d.hatena.ne.jp/ramtiga/20110418/p1

というのがあった。

これは便利というか、わざわざ gem になってるのか。

以前務めていたときには、全環境で app/models/settings.yml を読んで、その中で

production, test, development を分けている方法があったが、

きっと 3.0 で gem になったのだろうと思う。

2012/04/25

$ sudo gem install settingslogic

Gemfile に以下の記述を追加。

gem 'settingslogic'

Linux を svn サーバにする

| 16:28

サーバは VMware で作った仮想マシンにあるけど、ここでは関係無い。

svn+ssh で、クライアントは Windows の TortoiseSVN で公開鍵を使えば簡単にできる。

まず sshd が入っていないので

$ sudo apt-get install openssh-server

で sshd を入れる。

入ったら、

念のため sshd_conifg を見てみる。

/etc/ssh/sshd_config でとりあえず、

PermitRootLogin yes

となっていればいいだろう。

サービスを起動させる。

$ sudo service ssh start

ちなみに

$ sodo /etc/init.d/xxx start

でもスタートはできる見たいだけど「使わんでくれよ」と警告がでる。

あとは

http://cl.pocari.org/2007-01-16-1.html

などの記述を参考にキー生成をすれば svn+ssh ができるようになった。

では説明にならないので^^;、具体的に書く

まずサーバ側

いつも使っている id ではなく subversion 用のグループを作ってやる。

$ sudo groupadd subversion
# sudo usermod subversion uuu
$ sudo chgrp -R subversion xxx

uuu はユーザ名

xxx はリポジトリのパス

で、おk。

これで svn+ssh が動いているはずだ。

ssh の tunnel モードを使うので、コマンドラインでの確認方法は分かりませんorz

クライアント側

最初に sskeygen.exe (putty)でキーを作る。

既にサーバ側に $HOME/.ssh/authorized_key がある場合でも、TotoiseSVN が putty 形式でないと認識しないようなので、sshkeygen は必要です。

次に ToroiseSVN の設定(Settings)で Network を開く。

下の方に SSH の設定ができるところがあるので、

"...PATH...\TortoisePlink.exe" -C -l ユーザ名 -i キーのパス\key.ppk

と設定。

あとは checkout するなり。