b.l0g.jp     About     Archive     Feed

Subversionリポジトリへコミットするときの405エラー

Subversionリポジトリへうまくコミットできないときがたまにあるので、メモ。

コミットしようとすると、途中で以下のようなエラーが出ることがあります。
commit -m "あれこれ変更" -N (32 paths specified)
Sending        C:/Users/hoge/project/apps/frontend/modules/article/templates/indexSuccess.php
(中略)
Adding         C:/Users/hoge/project/cache/frontend/dev/template
RA layer request failed
svn: Commit failed (details follow):
svn: Server sent unexpected return value (405 Method Not Allowed) in response to MKCOL request for '/svn/pjtransrate/!svn/wrk/be91e174-dd4b-124f-abbd-dd57636aa9ad/trunk/cache/frontend/dev/template'
「405 Method Not Allowed」が出るときは、フォルダ名やファイル名にSubversionで管理できない文字が含まれている、との情報があったりしますが、symfonyのcache/frontend/dev/templateの下は symfony cc した後は空なので、管理できない文字とやらが含まれているということはありません。
とりあえずcache/frontend/dev/templateを手動で削除してからコミットしたら、うまくいきました。
よく分かりませんが、うまくいったのでよしとしよう。

Windows付属のツールで簡単にパノラマ写真が作れる

何だか広告みたいなタイトルになってしまったが、なかなかすごい機能だと思ったのでご紹介。

最近、Windows 7がインストールされたノートパソコン(Panasonic Let’s note S9)を衝動買いしてしまった。これには、Windows Liveフォトギャラリーというソフトが付属しており、デジカメで撮った写真などを管理することができる。SDカードからそのまま写真を取り込めるので、このソフトをそのまま使っている。別にPanasonicのPCにだけ付属しているソフトではなく、Windows 7には必ずインストールされているはず。

登山などで見晴らしの良いところへ行くと、360度ぐるっと写真を撮って、後でつなげて1枚にしたくなる。ところがなかなかこれを簡単にしかもきれいにできるソフトがなかったので、撮るだけ撮ってそのままにすることが多かった。しかし!このLiveフォトギャラリーでは、複数の写真を選択してメニューを選ぶだけで、簡単にパノラマ写真が作れる。

パノラマ写真の一部となる写真を選ぶ。Ctrlキーを押しながら写真をクリックすると、上の画面のように背景が青になり、複数の写真を選択できる。

いずれかの写真の上で右クリックし、「パノラマ写真の作成」を選ぶ。

作成にはそこそこ時間がかかる(手元の環境では、600万画素のデジタル一眼で撮った10枚をつなげるのに1分半ぐらい)。

保存を促すダイアログが現れるので、ファイル名を指定して保存すると、出来上がったパノラマ写真が表示される。

今年8月上旬に飯豊連峰を縦走した時の、北股岳山頂からの眺めをパノラマ写真にしたのがこれ。

横幅が長すぎてうまく表示されない場合は、直接こちらから。かなりきれいにつながっている。

http://b.l0g.jp/wp-content/uploads/2010/09/kitamata_panorama_s.jpg

ちなみに、北股岳山頂からの眺めは素晴らしかった。写真左側は頼母木小屋、杁差岳方面へ続く稜線。地図を見ている人(F西さん)の左側奥へ続く稜線が、それまで2日かけて歩いてきた飯豊連峰の主脈で、手前から梅花皮岳(かいらぎだけ)、烏帽子岳と続き、F西さんの右肩の上あたりが2日目に泊った御西小屋、左側に続く稜線上の最高点が飯豊本山、右側の人物の先が飯豊連峰の最高峰、大日岳だと思われる。鳥居の左奥辺りには佐渡が島が見えていたはず。ちょうど写真の境目の部分が二王子岳付近。

ああ、説明を書きながらまた行きたくなってきた。今度飯豊へ行くときは、6月ごろのまだ雪が豊富な時に行き、また真夏とは違った花々を楽しんでみたいものだ。

あ、結局ソフトの紹介じゃなくて、山に行きたいという話で終わってしまった。

symfonyでデータをMySQLにロードする際のduplicate entryエラー

symfony 1.4.6 + XAMPP 1.7.3(Windows)で、ありがちなエラーではまったので、メモ。

symfonyのschema.ymlとfixture.ymlを記述して、
# symfony doctrine:build -all -and-load -no-confirmation
で、一気にデータベースの再構築とデータのロードを行おうとしたところ、以下のエラー発生。
>> doctrine  created tables successfully
>> doctrine  Loading data fixtures from "C:\…\Eclipse\symfony\data/fixtures"
>> doctrine  Loading data fixtures from "C:/…trineGuardPlugin/data/fixtures"
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '????' for key 'name'
当たり前だが、fixture.ymlでは重複するような値を定義してはいない。????というのが気になるが、これは何?
どうやらこれは、データベースの文字コードがlatin1などになっている場合に起きるようである。データベースの文字コードをUTF-8にすると共に、fixture.ymlに日本語のキーが含まれている場合、こちらの文字コードもUTF-8にする(Windowsではメモ帳などを使って編集すると普通Shift-JISになるので注意)。
[mysqld]
default-character-set=utf8
character_set_server=utf8
skip-character-set-client-handshake
[mysql]
default-character-set=utf8
XAMPPのインストールフォルダ以下、mysql\bin\my.ini ファイル内の各項目に、上記を追記し、
net stop mysql   # MySQLサービス停止
net start mysql  # MySQLサービス開始
mysql -uroot -p パスワード
mysql> drop database データベース名;   # 念のためDB削除
mysql> create database データベース名;   # 念のためDB再作成
としてMySQL再起動、データベース再作成をしてからもう一度
# symfony doctrine:build -all -and-load -no-confirmation
とすれば、すんなりデータベースを作成できる。
なお、自分がやったときには、MySQLのstatusコマンドではUTF-8になっていたのに、どうしても上記のDuplicate entryのエラーが出てしまい、混乱した。
mysql  Ver 14.14 Distrib 5.1.41, for Win32 (ia32)
Connection id:          5
SSL:                    Not in use
Using delimiter:        ;
Server version:         5.1.41 Source distribution
Protocol version:       10
Connection:             Named pipe: MySQL
Client characterset:    UTF-8
Server characterset:    UTF-8
UNIX socket:            MySQL
Uptime:                 9 min 40 sec
この場合、以下のコマンドでも確認し、全部の設定がUTF-8に揃っているかを見てみるべし。
mysql> show variables like 'char%';
+---------+--------------+
| Variable_name            | Value                                  |
+---------+--------------+
| character_set_client     | utf8                                   |
| character_set_connection | utf8                                   |
| character_set_database   | utf8                                   |
| character_set_filesystem | binary                                 |
| character_set_results    | utf8                                   |
| character_set_server     | utf8                                   |
| character_set_system     | utf8                                   |
| character_sets_dir       | C:\eclipse\xampp\mysql\share\charsets\ |
+---------+--------------+
8 rows in set (0.00 sec)
どれかがlatin1などのままならば設定が不十分なので、もう一度my.iniを確認すること。