引っ越し準備中。
引っ越し業者の見積りがめんどくさいっすね。前回引っ越した時は電話での見積りだけだったかな。今回は部屋が広いので訪問じゃないとやってくれん。 二箇所に見積りしてもらったが、一箇所目は7万円くらいとのこと。思ったより高いがエアコンとガスコンロの処分も含んでるのでだったらそんなもんかなと。あと本がやばいくらい多い。 二箇所目は普通に行けば8万円だけど、時間帯の指定をお任せにすると安くできるよって言われて、その日のうちに引っ越せればべつに時間はいつでもいいって言ったら5万円になった。おい安くなりすぎだぞ。微妙な差なら悩むところだったが2万円差は選択の余地がないなぁということでその場で決めてしまった。 前回も思ったけど引っ越しに料金て思った以上に安くて謎だよな。 まあ梱包とかは自分でやるし、実際荷物の積み降ろしだけなんだけど。
段ボールもやたらと沢山もらったのであとはせっせと箱詰めしていこう。いらない物の処分といろんな手続きもしないとなー。
サーバも引っ越さないといけないんだった。
今使ってる安いVPSが11月いっぱいでサービス終了と以前から言われてて、近くなってきたのでそろそろこの日記とかWebサイトを引っ越さないといけない。
次はどこのVPSにしようかなーと考えていたんだけど、最近はもうVPSの必要もないから、レンタルWebサーバ(?)でもいい気がしてきた。 以前はmonotoneのサーバを建ててたんだが、今はfossilをCGIでホストしてるからCGIでfossilが動けば十分だ。普通にCGIが動くところならfossilは動くだろうし。バイナリさえローカルでビルドできちまえばさ。
レンタルのWebサーバで気になるあたりといえばRubyのバージョンだな。どこも1.8系だったりしやがるが……。が、これもよく考えると、自前でビルドしたRubyを使えばいいだけだった。なぜかその発想が無くてとあるサーバではずっと1.8を使ってたが、出来ない理由はないな。
他の理由でVPSが欲しくなる可能性は多いにあるんだが、今のところは無いしあったらその時VPSをあらためて契約することも可能だろう。ちょっくら遊ぶくらいならMSDNのおまけのAzure数千円分もあるし。
レンタルWebサーバはどこがいいか調べてみるが、最近はあんまりないのな。ビジネス向けっぽいのは高い、あんまり安いのはCGIとかの制限が強いので、500円/月近辺がやっぱり丁度よさそう。今のVPSもそんなもんだけど。 すぐ見つけられたのだとさくらか、XREAやCoreServer。XREAは今も使ってるけど今更これを新しく契約するのはなさげで、使うなら上位のCoreServerかな。XREAで何か困ったことってのもないんで問題はないと思うが、XREAもCoreServerもGMOだからなー、GMOいいイメージが全然無いからなー。CoreServerとさくらだと同じくらいの値段でCoreServerの方が制限ゆるめ。とはいえDB作り放題とかそんなにいらないよ。
UPnPが有効だと落ちるよという報告がいくつかあったので修正した。
貼ってもらった例外およびスタックトレース情報を見ると、Mono.NatのBeginCreatePortMapにコールバックとAsyncStateを渡すんだが、コールバックが呼び出されるとAsyncStateに渡したのと違う物が入ってるという状況な模様。なんだそれMono.Natのバグじゃねぇか。 しかしMono.Natのソースを辿ってみるが、そんなことになりそうな箇所は全く見当たらない。手元で再現しないとだめか。
手元で再現するには今AirMac Extremeを使ってるルータをちょっと古いUPnPの物に置き換えなきゃなくて困ったなー、とか思ってたんだけどポータブルのWiFiルータを持ってたことを思い出した。これWAN側つながなくてもUPnPくらい反応すんじゃねぇかな、と試してみると予想通り動いてくれた。再現もできたしやったー!
再現できたのはいいけど、Mono.Natのデバッグ情報無くて中まで辿れないな。Mono.Natのビルドからやるか。で、新しくビルドしたMono.Natを入れたら再現しなくなっちゃった。あれー? 単に使ってたMono.Natが古すぎたようだ。そんなに古くなかったと思ったんだけどなーと調べてみたら、入れたの半年くらい前だし、その時ビルドしたやつは数年前のソースっぽい。なんでだー。 ということで新しくして直った。
他にmonoでJson.NETが呼んだBigInteger.Parseにて例外出し落ちるという報告もあったので調べてみる。が、うちのOSXでは動いちゃうな。monoのバージョンが悪いかと報告があった3.0.6試してみると再現した。詳しく調べると3.0.8からはちゃんと動くみたい。じゃあ3.0.8以降を使って、でもよかったんだけど、Debianのパッケージ使って入れてるっぽい雰囲気だったのでこっち側で回避できるならその方がいいなぁ。 これもJson.NETを更新したらう動くようにならねぇかなーと適当に更新したら動いた。おやー?Json.NETは6.0.4から6.0.6に更新しただけなんだが。そんなに変更は入ってないようだが何が効いたんだろう。まあわからんけど動いたからいいや。
ということでこのライブラリ更新2件だけ入れて1.9.0.2をリリースした。
しかしmonoでまた動いてない感じなんですけど……。
monoで落ちるのは直したので手元で使ってるのも更新したんだけど、しばらく使ってると通信が止まってしまう。 なんだかCPUを食い潰すんだけどなんだろうこれ?
monoを最新の3.10.0に更新しても起きてしまうのでバージョン依存ではなさそうか。 デバッグしたいけどmonoのデバッグはひどくめんどくさいんだよなぁ……。
WindowsでXamarinStudio入れてデバッグしようとしたが、デバッグ開始するとXamarinStudio自体がエラー吐いて開始できない。使えねぇぞこいつ。
OSXでXamarinStudio入れたらさすがにデバッグはできたが、デバッグ情報無いとつらいからビルドもしちゃおう。ビルドはWPFの部分だけ外せば問題なくできたが、ビルド中に.NET4.5は知らんから.NET4でビルドするねーと延々出されていた。あれ実行は対応してるけどビルドは未対応なんですかね。まあWPF部分外せば.NET4でも動くけど……。
デバッグできるようになったのでそのまましばらく使ってたんだけど、現象が発生しない……。えーと、.NET4.5だったのが悪いんですかね。それはすごい困ったぞ……。今のところは.NET4レベルしか使ってないからいいんだけど、今後はC#5の機能使いまくる予定なんですけれど……。
デバッグもしづらいしどうしたものだろうか。