2013年1月19日土曜日

家電ちゅーのは


重なって壊れるのぉ。

プリンターが壊れたと思われる。
うちはずっと Canon ユーザなんやけど。

何回クリーニングしても印刷したら筋が沢山出来てしまう。
もうヘッドがダメになったんだろーね。
数年使ってたんで、そろそろ買い替えか?と思ってた矢先の出来事だ。

買ったのはこちら。


Canon PIXUS MG6330

コストコで16,880円。
昨年末に買い替えか〜、とか思ってぼんやりリサーチしてた機種。その時点で2万趙だったんだけど、年が明けてからかなり値崩れしたな。今のプリンタが年賀状がんばってくれたおかげだ。ゴーイングメリー号という戒名をつけて埋葬しよう。

購入したやつはハイスペックなんだけど、結構でかい。
どこに置こうか。困ったのぅ。

2013年1月14日月曜日

[WPF]フィルター

Silverlight で絞り込みについて書いたが、WPF だと↓こんな感じ。


        private ICollectionView collectionView;
        public ObservableCollection<LogEntity> Logs { get; set; }

            this.collectionView = CollectionViewSource.GetDefaultView(Logs);
            this.collectionView.Filter = delegate(object args)
            {
                return true;
            };

Filter に委譲している処理で絞り込み処理を書いて、bool を返す。

DefaultView が用意されているので、こっちの方が楽チンだな。

[Silverlight]フィルター

ListView, DataGrid, ListBoxなどに対し、絞り込みを行いたい場合は、CollectionViewSource を使おう。WPF と若干使い方が違うっぽい。


TextBox に入力したもので ListBox のアイテムを絞り込んでみる。



まずは XAML。


   <TextBox Text="{Binding Filter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />

<ListBox ItemsSource="{Binding ViewSource.View}" />




続いて ViewModel 側。


        public CollectionViewSource ViewSource { get; set; }

        public ObservableCollection<Entity> LeftItems { get; set; }

        private string filter = "";
        public string Filter
        {
            get { return filter; }
            set
            {
                filter = value;
                if (this.ViewSource != null)
                {
                    this.ViewSource.View.Refresh();
                }
            }
        }


        public ViewModel()
        {
            this.LeftItems = new ObservableCollection<Entity>(list);
            this.ViewSource = new CollectionViewSource();
            this.ViewSource.Source = this.LeftItems;
            this.ViewSource.Filter += new FilterEventHandler(view_Filter);
        }


        void view_Filter(object sender, FilterEventArgs e)
        {
            var entity = e.Item as Entity;
            if (entity != null)
            {
                e.Accepted = entity.Data.Contains(this.filter);
            }
        }



ListBox の ItemsPanel に以下のビヘイビアを設定していると、フィルタ時にどや顔が出来る。

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

<ItemsPanelTemplate x:Key="ItemsPanelTemplate">
<StackPanel>
<i:Interaction.Behaviors>
<ei:FluidMoveBehavior AppliesTo="Children" Tag="DataContext">
<ei:FluidMoveBehavior.EaseY>
<CircleEase EasingMode="EaseOut"/>
</ei:FluidMoveBehavior.EaseY>
<ei:FluidMoveBehavior.EaseX>
<CircleEase EasingMode="EaseOut"/>
</ei:FluidMoveBehavior.EaseX>
</ei:FluidMoveBehavior>
</i:Interaction.Behaviors>
</StackPanel>
</ItemsPanelTemplate>



Symfoware ODBCドライバ

32bit しかないみたい。
つまり、アプリケーションを 32bit でビルドしなければいけない。
せっかく64bit マシンが用意されていても、WOWで動かさなければいけない。
64bit に対応されんかのぉ

Systemwalker Centric Manager

今、携わっているネットワークや機器、サーバー、プロセスなどの状態を監視する為のアプリケーションで Systemwalker Centric Manager を選定している。

個人的な感想だが、いずれの機能も1歩惜しいという感じである。

  • 状変を検知後、メール送信したり、外部プログラムをキックしたり出来るのだが、キックするフィルタを毎回全なめするので、数が多いとパフォーマンスは悪い。(せめて並列処理するとか、最初にヒットしたものだけにするとかしてほしい)
  • システム構成図を表示し、ノードの状態表示を出来るようになっているが、ホストOS、仮想OSを階層的に表現出来ない。(UIも古めかしい)
  • 復旧しても確認しなければ赤バッテンがついたまま(らしい)。
  • 確認操作時にメール送信、外部プログラムをキック出来ない。
  • イベントの集約(AND/OR)が出来ない。


あとは、デザインシート作成や打ち合わせが手間だったり、構築費用が高かったり云々、細かいのをあげるとキリが無い。今回のシステムでは ServerView で十分だったと思われる。

VMware vCenter Converter

数年前に携わったプロジェクトの改造の話があった。
もともとVB5.0で作成されたものを無理矢理Web化するためにActiveXに変換して数十の画面をコンバートした。

開発端末は XP なんだけど、ActiveX を配布するには DLL のバージョンとか狂ってしまうと、うまく配布出来なかったりするので、その端末は Windows Update が出来ない。

怖いのは、この PC が壊れてしまったら。
考えただけでも冷や汗もんである。

なので、今回の改造にあたり、VM化しようということで、VMware vCenter Converter で吸い出すことにした。

いくつかやり方があるみたいだが、今回は XP 端末に Converter をインストールしてネットワーク共有しているフォルダに出力してみる。

1台目はあっさり出来た。
ライセンス認証しなければ立ち上がらないので気をつける必要がある。

もう1台の方が、VM化後に起動したらブルースクリーンになって起動出来ない。
一瞬なんでなんというエラーなのかわからなかったが、どうもディスクが SCSI だとダメそうな気配。0x0000007B でグーグル先生にこちらのサイトを紹介してもらい、手順に従ってやってみると、無事に起動することが出来た。


しばらく使ってみると、キーボード配列がおかしくなってて記号がうまく入力出来ない。
どうも、US配列になるっぽい。デバイスマネージャーでドライバを更新して、日本語のやつを選ぶことで戻った。

簡単にはできないもんだね。





仕様書や設計書に

「○○、□□など」の様に「など」と含みを持たせる表現をしてはいけない。
納品後に追加機能を無償でやらなければいけなくなる。
むしろ、その「など」がなんなのかをはっきりさせるのが上流工程の設計である。
これが出来ていないのは仕事をしていないことと同じだ。

作成されているドキュメントが「○○案」だとか「××(仮)」、「△△ネタ」とかとなっていると、WBSがはっきりしていない可能性があり、作業時間は多いのに一向に何も決まらない状況になってしまう。ソフト屋さんに無理をお願いしてお金も払えないことになりかねない。

あと、ドキュメントはですます調を統一したり、主語をはっきり意識しないと、読む人はとっても辛い。
例えば、ボタンクリックしてCSVを出力する機能について、詳細設計書に、
「ボタンクリックされると、CSVファイルが出力されます。」
とか。
プログラムとしては、「出力されるのではなく」、「出力する」が正しい。



録画用のHDDが

逝ってしまった。
おそらく Apple TV の設置中に衝撃を与えてしまったからだと思う。

HDD は衝撃に弱いと聞いていたが、まさかこんなあっさり逝ってしまうなんて。
ちゃんと電源落としてからやるべきだった。

今日、コストコで買ってきた。


2TB で8900円。
シンガポールの津波被害でかなり高騰してたけど、戻ったねぇ。


Apple TV

半年周期で家族内読書カップをやっている。
1位になった人は好きなものを購入出来るルール。

昨年下期は私が勝ったので、1/2 に Apple Store でポチっと。
2日後に届いた。


Apple TV といってもテレビが見られる訳ではない。
やりたいことは、

  1. iMac のコンテンツ(音楽/写真)をリビングのテレビで再生
  2. Youtube などの動画をテレビで再生
  3. 撮影した iPod Touch の動画をテレビで再生

なところ。3はこれまで、撮影したものを PC に取り込んで変換して DVD にするだとか敷居が高かったので、出来るようになると胸躍る。
テレビは REGZA なんで、DNLA 使えば割と出来ると思うけど、設定とか面倒だし。
映画のレンタルも出来るが高いので多分使わないかな。


中身は本体、リモコン、ケーブルのみ。



HDMI ケーブルは別途購入する必要がある。
それは amazon でポチッと。
「PLANEX ハイスピードHDMI Ver1.4ケーブル」ってやつで、580円だったかな。

接続すると、言語を設定する画面が出てきて、あとは大体終了(適当)。


簡単!!!

と、思いきや、

  1. Youtube で検索するときに日本語入力出来ない。
  2. iMac のホームシェアリングが見れない。
  3. iPod の映像をストリーミング配信出来ない。

って、ダメじゃん。
1は iPod の Remote ってアプリで出来るらしいんだけど、iPod から Apple TV がみれないんだよね。同じネットワーク内なのに。

色々調べた結果、どうも無線LANが悪さしているっぽい。
COREGA 使ってるんだけど。
買い替えか〜とか思いつつ、設定を見直していたら、ファームウェアが更新されてるとかで、アップデートしてみる。
と、つながるようになったではないか!

いいねぇ〜。
iPad mini が欲しいねぇ。

入荷するのに2週間かかんのか。
そのうち、嫁さんに黙ってポチッとしよぉ。