MVVMに準拠する場合の、小画面の表示処理は、どこで行うべきか。

 
開発ニワカなりの疑問にぶち当たりました。
 

MVVMに準拠する場合、小画面の表示処理はどこで行うべきか。

 
今まで、わりかし気にせず処理はViewModelでやらせてたんですが、親子関係の設定を特にしていないからだったことに気づきました。
 
親子関係を設定するには、子のウィンドウを生成した時などに、子ウィンドウのオブジェクトのOwnerプロパティに親ウィンドウオブジェクト渡す必要がある。
 
さて、この親ウィンドウを子にどこでどう渡したものか。
方法はいくつかある。
 
1.ViewからViewModelへ伝える(View)
ViewはViewModelを知っているので、ViewModel(データコンテキスト)に受け取るフィールドかプロパティを用意して受け渡す。
 
2.ICommandのExecute(ViewModel)
コマンドパラメータで親ウィンドウを渡してあげる方法
 
3.コードビハインド(View)
親ウィンドウのコードビハインドに書くならば、そのままchildWindow.Owner = this;
 
4.ビヘイビア(View)
3の方法をビヘイビア化するだけ
コードビハインドの記述量を減らすなら3よりこっち
 
5.画面(Window)に関する情報を蓄える、第3のクラスを用意する
パブスタで用意してどこからでも参照できるようにして窓口を作る
 
 
 
さあどれだーなんだけど
正直全部妥協案なような気がしてきてしまう。つまりしっくりきてないというか…
 
MVVMの概念的に、ViewとViewModelは極力疎結合にしたいから5番になるのかなーって思うし、windowとwindowの話だからViewで完結すべきという話なら、3か4で、コードビハインドに書く量は極力減らすべきだから4かなって
 
4か5で実装することに。
 
他にいい方法あるかもだけど思いつかなかった

初めての自作PC

自作PCしました。 何気に初笑

以前使ってたASUSのノートPC ネット上の動画見るのですらガクガクになりはじめてたので
Win10無料アップデートも終わりそうだし、嫌気さして買い換えました。

友人に助言いただきながら組みました。すごく満足のものができたと思います。
当分買い換えたくもなかったのでガッツリスペック盛りました。もう5,6年はこれでなんとかなるはず。


ケース:Silver Stone SG12
マザー:Gigabyte GA-Z170N-WIFI mini-ITX
CPU :Intel Core i7 6700K
GPUGeForce 970
メモリ:16GB(コルセア)
SSD :240GB
HDD :2TB


その他:DVDドライブ


これでやりたかった画像編集だとか動画編集だとかもサクサクになりました。


組むうえで曲者だったのはGigabyte製の GA-Z170N-WIFI っていう mini-ITXマザー

www.gigabyte.jp


f:id:nexl:20160807165547p:plain


USB3.0の端子がCPUにだいぶ近いところに配置されてて、CPUクーラーのシンクにあたってさせない問題でてマジで積んだかと思った。
友人も、こんなところに配置されているの遭遇したことないし、そもそもmini-ITXなんて小さい基盤で作ったことないからすごく大変に感じるっていっててアレ

購入先の店員にも相談したんだけど、「えーなんでこんなところに配置されてるんだ笑 ほかの製品と比較しても、Gigabyte製のmini-ITXだけ、ここに配置されてますね。。。」って言われて、L字の変換コネクタというか延長コネクタみたいなのないかさがしてもらったけどそういうの出てないって言われてこれはオワタって思ったんだけど

CPUの冷却シンクの向き変えたらぎりぎり刺さった。

またばらしてグリス塗りなおしたり面倒くさかったけど、一件落着ということで。



余談
トリプルディスプレイの環境にしたくて、ディスプレイケーブル3つ(HDMI端子のケーブル*3)買ったんだけど
グラボのポート、HDMI*4かとおもってたら、HDMI*1 + DisplayPort*3だということに買った後に、気づいて悶絶した。

幸い、マザボHDMI*2付いてたから、つながらないことはなく移せたけど
せっかくグラボ積んでるのにCPUの力借りてるのすごく負けた感。






f:id:nexl:20160807170101j:plain

「才能」だとか「努力」って言葉

「センス」だとか「天才」だとか「凡人」だとか、その他いろいろあるけど僕がすごく苦手な言葉

これらの言葉は、結果論でしかない。

便宜上、使いやすい言葉なのは確かにそう思うし、使っちゃダメとは思わないけど、これらを何かの「理由」に使うのは違うと思う。


例えば 

「あいつは、もともとセンスがあるから努力しなくてもできて、俺はそれで負ける」

こういうこと言う人たちを見るといつも "また見えない何かと戦ってる" って心の中で呟いてる。
これは相手の取り組みとか過程ってものを度外視した発言だし、さらに発言者がどれだけやってきたかなんて知らないよ。ってお話なんだけど

もとより戦いごとでみんながわかることは 勝ったか負けたか できたかできないか どんな点数がでたか の"結果"だけで
普通はわからないし、"過程"なんかは自分の外に持ち込むべきでない。というか持ち込んでもわかってもらえるよう(本当に伝わるよう)な内容ではない。 "結果"がなければね。

"結果"を持ち合わせていないで、そういった話を持ち込んだ瞬間、ただただ "ダサい" んだよ。

なぜって、その人がどれほどの積み重ねをしてきたか、相手がどれほどの積み重ねをしてきたかなんてその本人しか知りえない。
また不毛だとも思う。 その本人たちは自分以外の積み重ねを知らないから比較しようがないのだから。

「俺はあいつよりやってきている」

それはいったい何のことだろう。量? 時間?
量をやればうまくなるだろうか。時間を費やせばうまくなるだろうか。
僕の経験だと、0にいくらかけても0だということがよくわかっている。大切なのは質、自分にとっての質。
頭使って最良と思われる手法を理解して、適したやり方を取り入れていかなくてはうまくならない。
また、何が自分にとって最良の練習だかってのは人によるから、話を聞けばうまくいくというのもまた違うところが難しいところではあるけど。
どれだけ頭を使って、どれだけ工夫して、どれだけ繰り返したかの過程が、確固たる実力に繋がるのは間違いない。
けれど、その"過程"なんてのは、伝わりづらいよ。結果を持ち合わせていなければ尚更。



ただ回数重ねるのなんて誰にでもできる。そしてそれらのことは、基本的に自分以外わからないこと。
事細かにこういうことをやったっていう"説明"と"事実"と、
それを実証できる"結果"がないと誰もわからない。本当だとも思わない。比較しようがない。

だから結果が出ない限り何を言ってもしょうがない 嘆いてうまくなるならみんな嘆くだろう。

誰にでも認められるには、 わかりやすい "結果" を出せばよい。
とんでもない愚行を侵さない限り、ほぼほぼ認められる。

そんなわけで 冒頭の発言は弱い・下手側の言い訳にしか聞こえないのだ。


認めてもらいたいから続ける人って僕含め多いと思うけど、それはみんなそうだと思ってるしすごく当然だと思う。
スポーツだってそうだよ、好きで、世間に認められて、対価ももらえるからやるんじゃないの。対価だけなら別にその事柄にこだわる必要ないと思うし、ただ好きな人は別に成長とか望んでないだろうから冒頭の言葉のような文句は垂れないだろうし。
そうなるとやはり成長して、それを認められて、実感することが醍醐味なのさ。


あ、あとこれは僕の経験則だけど、大体この言葉を理由に何かモノ申している人は"往々にして大して取り組んでいない" 手を動かさず口ばかり動かしてる人たちね。
で、こういうこと言ってる人たちは対外、自分はこんなに頑張ったのにうまくいってない こんなにやったんだよ僕も認めてよって周りが見えてない、自分がかわいくてしょうがない方々

Windows 10へアップグレード

前からやろうやろうとは思ってたもののやってなかったWindows10アップグレード
7月まででアップグレードできなくなる噂を聞いてたからいい加減やることに。

しかし、今使ってるWindows7をそのままアップグレードするのではなく、その前に自分で入れてしまった既に不要になった入らないものやら、レジストリーやらその他ゴミを消してから10に上げたい欲があったので、ファクトリーリセットかけてからあげることに

f:id:nexl:20160629005749j:image

メーカープリインストールosだから綺麗にメーカー製のゴミ達が復活し、その片鱗がデスクトップとして見事現れました。


f:id:nexl:20160629005947j:image

このままだと気分が悪いので、とりあえず見た目だけは戻した。

あとはこいつらの実態を始末して、Windows updateを最新までかけまくる。

そのへんは寝てる間にやってもらう

PCスピーカー

 

スピーカーとか音響って今までまったく気にしてなくて、鳴れば良いやぐらいだったんだけど、世界が変わった。たった1500円で

 

もともと使ってたやつ

Amazon エレコム USB電源スピーカ MS-105U シルバー MS-105USV

 

5年前にどっか適当に1200~1500円くらいで買ったやつ  をずっと使ってた。

 

 

今回買ったやつ

LOGICOOL ステレオスピーカー Z120BW

LOGICOOL ステレオスピーカー Z120BW

 

 

値段こそ1500円なんだけどこれがすさまじい。

今まで使ってた同じ価格のものとはまったくの別物すぎて、音響とかどうでもよいと思ってた自分が驚愕するぐらい。

 

重低音とかもすごく聞こえる。なんていうか、今まで気にしなさすぎて良いものを使ったことがないから言葉がわからない。

とにかく値段とクオリティに驚愕した買い物だった。

てか今、Mac用にもう一個買った。。。

 

 

 こんなん

f:id:nexl:20160620223239j:image

 

 

 

インターネット

インターネットを使うってハードル低くなったよね(良い意味で)

悪い意味なんて、とりあえずTwitterを題材に所々言われていることで、今更だから置いておくとして

Blog、いいよね。 

何がって、「人付き合いとか、外界とかにほとんどかかわらないけど、すごいことを成し遂げる実績のある人」の発信が残るだけにとどまらず、人目に触れる可能性があることなんだけど。
通常では人目に触れることのないその人たちの吐息が文字として残ってる場合がある。
その媒体は大体はインターネットのブログなんだけど
そういうブログに遭遇するとすごくあーーーインターネットって可能性広げるなぁって思う。

良い意味で