YDiary

メモ的な

CM 690 II Plus rev2にGV-N970WF3OC-4GDは入る

Divisionのオープンベータとか遊んでると,さすがに今まで使ってたGTX580では厳しそうな感じがしたので,思い切ってグラボを新調しました.
購入したのはGTX970のこちら.

どうもこのグラボ,三連ファンのおかげかとても長いことで有名らしく,ミドルタワーケースだと入ったり入らなかったりするみたいです.
今使ってるケースはCM 690 II Plus rev2というミドルタワーケースで,グラボ取り付けスペースは304mm.
それに対してGV-N970WF3OC-4GDの長さは…

Amazon商品説明:312mm
GIGABYTE公式サイト:297mm

とサイトによって微妙に違う.普通なら公式サイトのスペック表記を信じるべきですが,ネット上の書き込みを調べたところ「入る」という書き込みもあれば「無理」という書き込みも…
まぁ,入らなかったらその時はその時だ,と考えつつポチる.
結果はタイトルの通りでちゃんと入りました.
写真
こんな感じでちょうどピッタリサイズ
やはり公式サイトの297mmが正解のようです.

さて,せっかくの新しいグラボなのでとりあえずベンチを取りますよね.
写真
結果はこんな感じで,GTX580と比べて2倍以上スコアが伸びています!
これで最新のゲームでもそこそこの設定なら快適に遊べそうです.

また,現在GTX9xxシリーズを購入するとDivisionが無料で付いてくるキャンペーンをNDIVIAがやってるのでDivisionも入手出来てちょうど良かったです. www.nvidia.co.jp

Amazonプライムフォトに任意のデータをアップロードする

先日,Amazonがプライム会員を対象に写真データを無制限に保存できるサービスを始めましたね.
なんでもRAWなども含めて再圧縮なしでいくらでも保存できるとのこと.
とするとJPEGなんかにファイルを埋め込めば好きなデータを保存できるのでは…という気がしてきます.
そんなことを思いつつ対応ファイル形式を眺めていたら…
f:id:YDKK:20160125110544p:plain
なんとBMPに対応しているではありませんか!
確かBMPはファイル構造が単純だった気がするので,任意のデータをBMPに変換することができればAmazonプライムフォトを容量無制限のクラウドストレージとして使えるような気がします.

というわけで早速試してみましょう.
WikipediaBMPのファイル構造を調べて…
f:id:YDKK:20160125111909p:plain
それをもとに適当にファイルをBMPに変換するコードを書いて,適当なファイルを放り投げてみると…
https://pbs.twimg.com/media/CZYo58gUAAII6WG.jpg:orig
出来ました!
19676×19675ピクセルで1.44GBという狂気のBMPファイルです.
ちゃんとWin10の標準ビューアで開けます.
https://pbs.twimg.com/media/CZYtYtvUEAAHtNd.jpg:orig
あとはアップロードするだけですが,ここで自分がAmazonプライム会員じゃないことに気が付きました.まぁ,せっかくなのでこれをいい機会にとAmazon Studentに登録.
さて,いざアップロード...
https://pbs.twimg.com/media/CZYvI3TUYAE17jq.jpg:orig
Amazon強い



https://pbs.twimg.com/media/CZYvVApUsAA3b0z.jpg:orig
やりました!ちゃんと画像として認識されています.その後試しに10GBぐらいのBMPもアップロードしてみましたが,同様に画像として認識されてます.どうやら画像として認識されるファイルサイズに上限はないみたいです.
あとはこの一連のBMP化→アップロード,ダウンロード→元ファイルに復元する処理を裏でやってくれるようなファイルシステムDokanあたりで作ればかなり面白そうな気がしたのですが,残念ながら日本のAmazon Cloud DriveAPIはまだ提供されてないそうです.

というわけで,とりあえず今回はここまで.


追記:

と言われたので一部表現を変更しました.内容はほぼ変わりません.

C#でマイナンバーのチェックデジットを計算する

マイナンバーのチェックデジットを計算する - Qiita

こんなのを見かけたのでC#で書いてみました。
なるべく短く書こうとしたけど2回Parseしたりしてて無駄があるなーと。
どうにかなりませんかね。

using System;
using System.Linq;

static bool ValidateMyNumber(string input)
{
  //入力チェック
  if (input.Length != 12) return false;
  var checkDigit = 0;
  if (input.Any(n => !int.TryParse($"{n}", out checkDigit))) return false;

  var remainder = input.Take(11).Reverse().Select((v, i) => new { v, i }).Sum(n => (n.v-'0') * (n.i <= 5 ? n.i + 2 : n.i - 4)) % 11;
  return checkDigit == (remainder <= 1 ? 0 : 11 - remainder);
}

追記 Parseやめたらちょっとだけ短くなった

Windows 10 Threshold 2で広くなったストアアプリの最小幅を元に戻す

Windows 10をThreshold 2にアップデートしてからストアアプリの最小幅がPackage.appxmanifestの指定にかかわらず広くなりました.(スケーリングとか関係してそうな気がするけどよく分からない)

f:id:YDKK:20151116155604p:plain:h400これ以上幅が狭くならない…

UWPアプリであればApplicationView.SetPreferredMinSizeメソッドを呼び出して最小サイズを指定すれば済みますが,これはWindows 10のAPIであるためUWP以前のWindows 8.1向けのアプリからは直接呼び出すことができません.
そこで,リフレクションを利用して呼び出します.

public MainPage()
{
  InitializeComponent();
  var v = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView();
  var m = v.GetType().GetRuntimeMethods();
  var mi = m.FirstOrDefault(x => x.Name == "SetPreferredMinSize");
  mi.Invoke(v, new object[] { new Size(320, 0) }); //最小サイズを指定
}

f:id:YDKK:20151116160421p:plain:h400
これで,非UWPアプリでも今まで通りの最小幅に戻すことができました.

MoonStrikeを使い続ける方法

どうやらAPIキーが殺された模様
続けて使うには

  1. https://apps.twitter.com/app/new から新しいアプリを作る
    最近はSMS認証が必要みたい
    コールバックURLにはhttp://hoge.hoge/を指定

  2. 作ったアプリのKeys and Access TokensからConsumer Key (API Key)とConsumer Secret (API Secret)をMoonStrikeに食わせる
    設定→アカウントの追加→下のXORみたいなボタン

  3. Enjoy!

取り急ぎこんなもんで。
なお規約的に思いっきりアウトな気がするのでやるときは自己責任で

NTFSからReFS上にHyper-V仮想マシンを移動すると動かなくなる

HDDがご臨終された関係で仮想マシン関連ファイルの移動などをしていたのですが、奇妙な現象に遭遇したのでその解決法をメモ。

症状:ReFS→NTFS→ReFSとHyper-Vの仮想ディスク(vhd, avhd)を移動したら
「仮想ディスクシステムの制限により、要求された操作を完了できませんでした。NTFS上では仮想ハードディスクファイルの圧縮と暗号化がいずれも解除されている必要があります。ReFS上では、仮想ハードディスクファイルの整合性ビットが設定された状態にしておくことはできません。」と言われて仮想マシンが起動できなくなった。

解決法:Power Shellで次のコマンドを実行する

Get-Item "仮想ディスクファイル" | Set-FileIntegrity -Enable $False

参考:Disable the Integrity Bit of VHDs Copied to an ReFS Volume