くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | ]

2014-04-22

日記

やりたいことはいっぱいあるのに、何もできてないのはなんだろな。

土曜にちょっと遠くの本屋でも行くかと外に出たら電話かかってきて重篤なバグが出たというので会社へ。 しかし手元では再現できない。どうしたものかと思ってたらオペミスでしたわーということで一件落着。 呼ばれ損だが、よかった重篤なバグはなかったんだ、といったあたり。 帰りは当初の目的とは違う本屋に寄っていったが思ったより広くてなかなかいいところだった。

日曜はピアキャス見てたら遅くなったので寝た。なんだこれ。

最近Hybrid W-ZERO3の調子が悪くなって、 急にパケット通信ができなくなって困ってたんだが2回再起動したら直ったり、ずっと圏外になりっぱなしになって再起動したら直ったり。うーん、ついこの前までは問題なく動いてたし濡れたとかもないはずだが。

機種変更も検討してみたんだが、どうするのがベストなのかよくわからんな。Willcomのスマホとかにするとメールアドレスがかわっちゃうので諦めてたんだが、最近メールアドレスそのままでいけるようにもなってた。 しかしWillcomのスマホってちょっと微妙。機種が少なくて性能的にちょっとどうかという感じがするのもあるし、それよりテザリングに500円/月ってふざけてんのかよという気分。

まああとやっぱりスマホとか使わないだろうというのもある。 タブレットでちょこっとテザリングできれば十分なんですよねぇ。

テザリングはHybrid W-ZERO3のPHSテザリングを使ってて(3Gは高すぎる)、遅いし、電車の中だとすぐ途切れるしで使いづらいんだが、まあこのくらいの使いづらさで十分だった。せめて外に居る時ぐらいオフラインになりたいものである。しかしプロバイダがPRINなので、ちょくちょく使うと1500円/月にもなってしまう。つっても基本料金が2000円くらいなので、全部で3500円/月くらいにしかならんのだけど。 でも3500円/月なら別にデータ通信SIM持った方が速いし安いなとも思う。かといってWiFiルータを別に持つのもめんどいな。

そこでWiFiルータ付きのPHSであるPORTUS!と思ったんだけど、PORTUSは単体でブラウジングできないようだ。 単体でブラウジングとかそんなに使わないんだけど、ごく稀に無いと面倒なことになる時があるのでちょっと困るなぁ。 あと今更これに機種変するのか……?

いろいろ検討した結果、めんどくさいから機種変しない方向に傾いている。 Hybrid W-ZERO3のPHSテザリングくらいが丁度よくなっちゃてるんだよ。 調子悪いのは様子見だな。なんか6月にY!Mobileとやらになるっぽいし。

GPLとMs-PLは非互換(Ms-PLは使わない方がいい?)

PeerCastStationでWPF Toolkit Extendedとか普通に使ってたんだけど、これのライセンスがMs-PLで、Ms-PLは実はGPL非互換だということに気付いた。PeerCastStationはGPLなのでこりゃまずい。

Ms-RLってなんだっけGPL互換なんだっけ?と調べてたらMs-RLどころかMs-PLすらGPL互換じゃなかったというのを発見してしまったというね。

具体的にどこに互換性がないかというと、Ms-PLもMs-RLも配布する時は同じライセンスで配布してねという項目があって、しかしGPLにはGPLと組み合わせた物は全体として(元々GPLじゃない部分も!)GPLで配布しなきゃいけないという項目がある。これで非互換なようだ。どっちも理解はできるんだが、どちらかというとGPLの方が無茶言ってるな。まあこうしないと穴が出来るから仕方無いのは理解できる。

Ms-PLの物が一切使えないのは困ったなと思ったんだが、使ってるライブラリ見るとMs-PLの物はほとんど無かったし、最近のMSのオープンソース物もApache Licenseあたりが多くてMs-PLは使われてないようだった。 やっぱりGPLとの互換性が問題になったんだろうか。Monoとの協業があるしね。

MS自身がほとんどMs-PLを使ってない(Ms-RLはまだちょっと使ってるっぽい?)なら、GPLとの互換性もあるし今後はMs-PL使わない方がいいかもね。 既にMs-PLで配布されてる物はどうしようもないんだが、さて……。

[PeerCastStation] WPF ToolkitとWPF Toolkit Extendedの削除

GPLとMs-PLが非互換だったのに気付いたので、GPLをやめるか、Ms-PLなライブラリをやめるかの選択をしなくてはならない。

GPLをやめてLGPLあたりにする手もあるんだが、元のPeerCastからほぼ移植してる部分があるのでそこを書き直さないとGPLは外せない。 明らかにPeerCastから移植した部分というのはASFパースだけだから大きくはないんだが、今更そこを書き換えるのもなぁ。あと元のPeerCastがGPLだったからそれを受け継いでGPLというのもあるので、ほいほい緩いライセンスに乗り換えるのもしたくない。元のPeerCast自体がGPLなのは思想的な問題じゃなくて単にGnutellaをベースにしたからという気もするが。

一方Ms-PLのライブラリを使うのをやめる方は、使ってるうちでMs-PLだったのはWPF Toolkit Extendedだけだったのでこれを取り除けば問題解決だ。WPF Toolkit ExtendedもIntegerUpDownとWatermarkTextBoxしか使ってない。WatermarkTextBoxは最悪諦められるのでIntegerUpDownさえなんとかすれば外せる。この方向で頑張るか。

とりあえず外してビルド失敗を確認したんだが、予想外なところでもエラーが。ExtendedじゃないWPF Toolkitも使っていた。チェックボックスの見た目をいじるのに使ってたVisualStateManagerが.NET4以降は標準なものの、.NET3.5ではWPF Toolkitにしか入っていなかったのだ。サンプルを参考にいじったのにだまされた……。あとでなんとかしよう。

IntegerUpDownを作ればいいということでなんとかしよう。普通にUserControlを作って、TextBoxとRepeatButton2つを置いて、適当にそれっぽくすればいいのかな……?あ、できた。細かいところは怪しい気もするが、PeerCastStationで使う分には問題はないくらいにできた。

VisualStateManager使ってんのはどうしよう。というかチェックボックスのテンプレートはMSDNのドキュメントを見て作ったものだ。.NET3.5版のドキュメントを見ればVisualStateManager無しの奴書いてあんだろ……。あ、TriggersにTriggerつっこめばいいのか。VisualStateManager使ったのを見た時にTrigger的って使わないんだっけ?と思ったけど、単純なバージョンはTrigger使うのか。 TriggerとVisualStateManagerの違いはVisualStateManagerの方ではアニメーションできるあたりかな?しかしアニメーションなんか使わないので問題ない。 ドキュメントを見ながら直したらVisualStateManager使ったものよりむしろ簡単にできた。

WPFToolkitまで取り除くことができた。これでライセンスに問題はなくなったんだが、WatermarkTextBoxは普通のTextBoxに置き換えちゃったからできればなんとかしたい。実装方法はなんとなく思い付くから作っちゃうか。

テンプレートいじってTriggerでTextが空っぽなら暗い色のテキストを表示してやればいいだけだよな。 テンプレートのドキュメントを見るとScrollViewerかAdornerDecoratorを置いておけとのことだった。AdornerDecoratorにしてAdornerでウォーターマークくっつければいいかなーと考えたが、AdornerはXAMLからは設定できない模様。用途がちょっと違うな。 単に同じ場所にTextBlockを置いてそこにウォーターマークを表示すればいいだけだった。 あとはTrigger設定して、Textが空の時にウォーターマークのテキストをTextBlockに設定、フォーカス持ってる時はウォーターマークを明示的に空にするようにして完成。簡単ですな。

これでWPF ToolkitとWPF Toolkit Extendedが無事取り除けた。WPF Toolkit Extendedはそんなにハードに使ってなかったのがよかった。 IntegerUpDownあたりは作るの簡単かもしれないけどある程度コードは必要だし標準で欲しいんですけどね。


ページのトップへ | トップ «前の日記(2014-04-07) 最新 次の日記(2014-05-07)» | 編集 | kumaryu.net by kumaryu