Archive for the 'ソフト開発' Category

iPhoneアプリ作ろうかと

Posted by ゆのじ on 8月 4th, 2009

これまで書いていなかったが、実は私はiPhone3Gユーザである。しかも、3Gの時は発売されて1ヶ月ほどで購入、今はiPhone 3GSに機種変更してしまったほど気に入っている。そしてiPhone developers programにはiPhone3Gを買ってすぐにアカウントを作っている、、のではあるが、そこで放置してしまっていた。今思えば、面倒なのもあるのだが、アプリのネタもいまいち思いつかなかったというのが放置していた理由なんだろうと思う。

そうこうしているうちに、アカウントを作って1年近くもたってしまったが、ようやっと時間が取れそうな感じになってきたので、登録情報をFAXしたり、お金をはらったりということを実行に移し、やっとiPhone実機をつかっての開発ができるようになった。

ということでCocoaである。とりあえずまずは本でもということで、はじめてのiPhoneプログラミングと、iPhone デベロッパーズ クックブックを買ってみてぼちぼちと読んでいるが、なにせなかなか手が進まない。
というのも、Objective-Cなんぞ使ったのはOSXが出て間もない頃(クラムシェルのiBookを借りた覚えがある(*))に某大手通信メーカの販促用アプリを書いたっきりですっかり忘れているし、iPhoneのアプリケーションがOSの上にどう乗っているのかもいまいち理解しきれていない。Interface Builderを使って簡単にデザインできるのはすばらしいが、それの中身がどうやって処理されてるのかも未だに理解出来ていない。昔から上っ面だけ理解するのが苦手なので、この辺がわからないと全然理解が進まないのがいかんともしがたい。

理解できんできんと言っていても仕方がないので、とにかく手を動かすところから始めないといけないのは割と歯がゆい。忍耐力が必要そうだ。手を動かして何か見えたら続きネタを書きたい。

(*)今調べたら、なに10年近く経ってるの!? 大昔過ぎる。。

pecl ssh2を使いたい

Posted by ゆのじ on 11月 20th, 2008

phpのssh2関数群peclのssh2ライブラリをインストールしないと動かないが、使えるようにするまでが面倒だったのでメモ。

おおよその手順は、opensshとlibssh2を何らかの方法でインストール(yumで入れるなら-develも必要)して、peclのssh2をいれればいい。引っかかるのはたいてい最後のpeclのssh2で、あちこちのサイトに書いてあるようにpearコマンドでインストールしようとしても失敗する。ということでそこだけフォロー。

wget http://pecl.php.net/get/ssh2-0.10.tgz
tar xvzf ssh2-0.10.tgz
cd ssh2-0.10
phpize
./configure --with-ssh2

この後、出来たconfig.hの最下行に次の1行を追加する。

#define LIBSSH2_APINO 200412301450

後は、modules/ssh2.soを適当なところに突っ込んで、php.iniなりそれに類するところで、extensionとして読み込めばOK。要するにphpのAPIバージョンが違うから転けていたということなのだろう。

しかし、ssh2関数を使いたくてここまでやったはいいが、2005/11/01からアップデートされてなくてbetaが外れていないというのは、betaで安定しちゃったのかコミッタが飽きたのかどっちなのだろう。そしてPackage Bugsを見る限り、どうも後者のような気がしてならない。

よほど最低限の機能だけで挙動が読める(たとえばローカル間のみとか)環境以外では使わない方が良さそうな気もするのだけど、どんなものなのだろうか。おしえて偉い人!

svn/TortoiseSVNがコミットエラー

Posted by ゆのじ on 10月 5th, 2008

ちょっと特殊な環境でしか起こりえないと思う問題なのだが、fixに思いの外手間がかかったのでメモ。

symfonyの開発中で、クライアントがWindowsXP(SP3)、サーバはクライアントのWindowsにインストールしたVMWareの中でFedora9を動かしている環境。Fedora9は現在最新版のsamba()をインストールしていて、WindowsからUNCパス(\\servername\hogeという指定)でプロジェクトごとe-texteditorで開いて作業している。subversionはサーバ側が1.4系列、クライアント側はTortoiseSVNの1.5系列、https/WebDAVを使っていて、サーバは手元とは別の場所にある。

このような環境下で、場合により「コミットには成功しましたが続けて他のエラーが生じました」「次のパスを処理する際にクリーンアップに失敗しました」というようなエラーがでる。だが、このエラーメッセージをgoogleで調べても、TortoiseSVNの言語ファイルのソースばかり出てきてエラーにはたどり着くことが出来ない。

そこで、その言語ファイルの訳語元「Commit succeeded, but other errors follow」や、「」を調べていて、やっとこさそれっぽい記事にたどり着いた。このMLのスレッドでは、解決策として「samba使うのを止めるか」または「最新のsambaに入れ直せ」、ということになっている。調べてみると、その記事の書かれたとき(2008/09/15)のsambaの最新版は3.2.3。その3日後に3.2.4が出ている。手元の環境は3.2.3-0.20.fc9。このドキュメントを信用する限り問題はないはず。

だが、その環境で問題が起こっているので、念には念をということで3.2.4をfedora-updates-testing-newkeyリポジトリから拾ってみた。インストールされたバージョンは3.2.4-0.21.fc9。だが、やはり問題は再現したのであった。

その後、Eclipse+PDT+Subclipse1.4.xの環境でも同じ問題が発生したこともあり、どうもTortoiseSVNが原因ではない模様。ついったでしばらく文句垂れていたのは冤罪だったようだ。ほんとごめん>TSVN

このまま調べるのをやめてしまうと、また問題が起きるたびにフォローアップ作業をしなければならない。それは悔しいのでもう少し調べてみると、こんな記事を見つけた。曰く、共有フォルダごとの設定に、create maskやらの設定を追加するとちゃんと動くようになるよ! とのこと。うちではこんな風に書き換えてみた。下線部分が追記分。

[homes]
        comment = Home Directories
        browseable = no
        writable = yes
        create mask = 0644
        force create mode = 0600
        security mask = 0555
        force security mode = 0600

試してみると、これがなんとエラーが発生しなくなるではないか・・。

原因が良く説明できないが、症状がなくなったことは大変めでたい。もし正確な原因がわかる方がいればコメントいただければ幸い。