[ カテゴリー » PC関連 ]

楽天LTE解約

blog20130630-RakutenLTE_Status

先月はGWがあったから多めに使ったかなと思っていたのですが、今月もあと2日というところで高速通信が残り0に。どうも私の使い方だと200MB/月は若干少ないらしく、先日書いたLink 通り楽天ブロードバンドLTELink を解約することに。

解約はこのページLink にあるカスタマーセンターに電話で連絡しないといけない。同ページに書いてある混雑時間帯を避けて電話したので、待たされることなく繋がる(家の電話だとプッシュホンの音を自動応答機が認識しなかったので、携帯でかけ直すというトラブルはありましたが)。

任意で解約理由を聞かれたので、200MB/月は足りない、IIJmioに乗り換えるなどを回答。統計を取ってよりよい商品開発に繋げてくださいませ。

— posted by mu at 09:40 am   commentComment [0]  pingTrackBack [0]

IIJmio SIM到着

blog20130615-IIJmio

ASUS FonepadLink の販売促進キャンペーンとして実質無料で添付されるIIJmioLink のSIMが到着。Fonepadに装着するSIMということで送られてくるので、サイズは有無をいわさずMicroSIM。

現在使っている楽天ブロードバンドLTELink は解約する予定ですが、当月の解約受付が毎月10日までなので来月一杯まで継続して、8月からIIJmioになるでしょうか。IIJmioを超える魅力のサービスを今月中に発表するなら思いとどまりますよ? > 楽天様

何やらFonepadをroot化する方法も見つかったLink ようですが、先日の記事Link の追記に書いたように、システムソフトウェア3.2.3で時計が狂わなくなったので、差し迫ってroot化する理由が私にはありません。魔が差すのを待とうw

— posted by mu at 03:03 pm   commentComment [0]  pingTrackBack [0]

ASUS Fonepad購入

7インチパッドを耳に当てて電話する光景がシュールだとか、CPUがIntel Atomだとかでキワモノ扱いされているっぽいAndroidタブレット。Nexus7を持ってるLink のに買ってしまいました。

最大の理由はモバイルルーターの重量が重く感じられてきたのと、その電源On/Offが面倒になったから。3G通信を使うのはダブレットが圧倒的に多いのだから、必要時にはタブレットでテザリングすればいいじゃないかと。

だったら3G通信付きNexus7買えよって言われそうですが、すでに使っているNexus7に3Gついただけじゃ面白みがないってもの(^_^)

すでにネットのレビューでも普通に使えるって書き込みがちらほら出ておりますが、私が3日間使った感想を。

動画
  • H264動画プレーヤーはMX Playerは動く(要x86プラグイン)
  • DiCE Playerは×。現状MXしか動かないかもしれない
  • ニコニコプレーヤーLink は特に問題なし
ゲーム
ゲームは以下の2つだけ確認して動いた。Nexus7と比べると重いというかなんか引っかかる感じがする。
バッテリー
  • 付属(Nexus7の物でも可)のACアダプタを使わないと充電が遅い。Planex製最大2AのACアダプタは遅く、1時間で10%ほど。使用しながらの充電だと本当に進まない…
  • フル充電から連続稼動だと10時間持たなさそうな一方、スタンバイだと1時間に1%位(正確には測ってません)
電話
普通に使える(b-Mobile通話SIM使用)。ところで緊急通話(110/119など)に携帯からかける時、SIMの有無に関わらず通話可能という話を聞いたことがあるのですが、本当ならPadfoneも通話SIM無しでかけられるのではないかと期待してしまいます。なんか実験する方法ないかな。
手に持った感触
背面がアルミのため滑って落としやすいという意見をちらほら見ます。手のひらに乗せて左右の端を押さえるように掴むと、たしかに滑って落としそうな不安感があります。ただNexus7と交互に持ち比べて思ったのは、滑るというのは感触からくる不安によるものが大きく、実際にはそれほど差はない(Nexus7の方がすべらないですが)ように思えます。
その他
  • SIM/micro SDを入れる場所の蓋、開けづらい…
  • 現時点専用の液晶保護フィルム見つからないので、Nexus7の非光沢フィルムの穴あき部分をカッターで広げて使用。

私の普段の使い方では問題無さそうです。さぁてMVNO選びなおすかなぁ。

— posted by mu at 11:28 pm   commentComment [0]  pingTrackBack [0]

WPF用ObservableCollection

以前WPFにバインディングされたObservableCollectionを他スレッドから操作すると例外になるLink 件で悩んだ以後、CollectionのAdd/Removeはせずに毎回Collectionを作り直すという消極策に出ていたのですが、今回どうやら避けて通れない事態に。View側でCollectionChangedイベント監視するの面倒だなぁと思ってたら、答えLink は意外にも簡単なところに。去年もうちょっとちゃんと調べればよかった。

なんとなくViewModel/ModelがViewの事情に譲歩しているような気もしますが、これくらいなら個人的には許容範囲。(UIスレッドのDispatcher得るためにViewとViewModelに細工しないといけないならやるか悩んだかも)

[2018/4/23 追記] .NET Framework 4.5以上ではBindingOperations.EnableCollectionSynchronizationLink を使ったほうが楽でしょう。私も場合、いまだにXPで動いている案件が有ったりするので…

using System.Collections.ObjectModel;
using System.Windows.Threading;

class DispatchedCollection<T> : ObservableCollection<T>
{
    Dispatcher uiDispatcher = System.Windows.Application.Current.Dispatcher;

    protected override void OnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
    {
        if (uiDispatcher.CheckAccess())
        {
            base.OnCollectionChanged(e);
        }
        else
        {
            uiDispatcher.Invoke(new Action(() => base.OnCollectionChanged(e)));
        }
    }
}

[参考] マルチスレッド環境下でのコレクションの操作 (かずきのBlog@Hatena)Link

— posted by mu at 06:53 pm  

WPF: StoryboardにBinding

DoubleAnimationとかでFrom, To, Durationなどを状況に応じて変更させるためにこれらにBindingを設定したいという状況は少なくないと思うのですが、ControlTemplate.TriggersやStyle.Triggers内で定義すると実行時に”Cannot freeze this Storyboard timeline tree for use across threads”なるメッセージの例外が出ます。

どうもはっきり理解できていないのですが、理由は以下のどちらかかな?
  • Animationやっている最中にFrom, To, Duration値が変えられると困る。なので少なくともStoryboard開始前にはこの値を固定(Freeze)する必要がある。値を動的に変えることが目的のBindingはこれに反する。
  • TemplateやStyleは使いまわされることが前提なので、事前(多分Exe実行初期)にXamlをコンパイルしてパフォーマンスを改善している。よってコンパイル後値が変わる要因となるBindingは認められない。

ここの例Link はStoryboardをリソース指定、開始をコードビハインドでやることで、うまく回避できているということでしょうか。Animation開始後にウィンドウサイズを変えてもボールの動きが追従しないので、Animation中は値が変えられないということがわかります。

コードビハインドで取得したリソースはDynamicResourceに相当するLink らしいので、Storyboardをリソースで指定してDynamicResourceで参照すればと試したのですが、少なくともControlTemplateではうまく行かず。

[参考]

[2013/3/18 追記] 結局プロパティの変化を捕まえて、毎回コードビハインドでStoryboardから作る方法で逃げた

Storyboard LastStoryboard;
double from, to;

void BeginHeightAnimation()
{
    if (LastStoryboard != null) LastStoryboard.Stop();

    ControlTemplate template = (ControlTemplate)GetValue(TemplateProperty);
    FrameworkElement target = (FrameworkElement)template.FindName("Target", this);
    DoubleAnimation dblAnim = new DoubleAnimation(from, to, new Duration(TimeSpan.FromMilliseconds(200)));
    Storyboard sb = new Storyboard();
    sb.Children.Add(dblAnim);
    Storyboard.SetTarget(dblAnim, target);
    Storyboard.SetTargetProperty(dblAnim, new PropertyPath(FrameworkElement.HeightProperty));

    sb.Begin();

    LastStoryboard = sb;
}

— posted by mu at 12:31 pm  

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0255 sec.
prev
2024.4
next
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30